Backbone.js+Rrails 3个url和带有嵌套路由的集合



我正试图用Rails和Backbone.js创建一个新的应用程序,但有相当多的嵌套关系使它变得相当困难。

在Rails方面,我使用了Ingredients和Allergens之间的HABTM关系。我正在尝试获取与一系列过敏原相关的成分。计划是用数组查询Allergens表,获取它们的id,然后对照AllergensIngredients表查询,以获取Ingredientes id。

路由嵌套如下:

resources :ingredients do
resources :allergens
end

url为"/contents/:ingredient_id/agenots"。它非常适合Rails。在Backbone方面,我尝试使用Collections获取url为"/agents"的过敏原,但根据我的Rails路由,这被拒绝了(路由"/agenots"不存在)。因此,我在嵌套路由下面添加了一个独立的resources :allergens路由。这为Backbone创建了一条可识别的路线,但我的Rails过敏原_controller.rb:仍然存在问题

class AllergensController < ApplicationController
respond_to :html, :json
def index
respond_with(
@ingredient ||= Ingredient.find(params[:ingredient_id]),
@allergens = @ingredient.allergens,
)
end
# ...
end

因为没有id就找不到@component。我试过使用Backbone.sync和$.get,但它们仍然需要一个url,最终通过rails控制器。如何使用Backbone只查询数据库中的一个表,而不受Rails或url的任何干扰?非常感谢你的帮助!

我采用了一种不同的方法。我在刚刚返回Allergen.all的过敏原控制程序中创建了一个新操作,然后在Backbone中使用AJAX get请求返回xhr对象。这不是一个优雅的解决方案,但仍然是一个解决方案!

最新更新