我正在尝试使用 Rails 和 Backbone.js 创建一个新应用程序,但是有很多嵌套关系使它变得相当困难。
在 Rails 方面,我使用成分和过敏原之间的 HABTM 关系。我正在尝试获取与一系列过敏原相关的成分。计划是使用数组查询 Allergens 表,获取它们的 id,然后根据 AllergensIngredients 表查询它以获取成分 id。
路由嵌套如下:
resources :ingredients do
resources :allergens
end
网址为“/ingredients/:ingredient_id/allergens”。它非常适合 Rails。在 Backbone 方面,我尝试使用 Collections 来获取带有 url '/allergens' 的过敏原,但根据我的 Rails 路由(路由'/allergens' 不存在),这被拒绝了。所以,我resources :allergens
在我的嵌套路由下添加了一个独立的路由。这为 Backbone 创建了一条可识别的路线,但我的 Rails allergens_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 就无法找到 @ingredient。我尝试过使用 Backbone.sync 和 $.get,但它们仍然需要一个 url,它最终会通过 rails 控制器。如何使用 Backbone 只查询数据库中的单个表,而不受 Rails 或 url 的任何干扰?非常感谢你的帮助!