Rails と Backbone.js の両方を使用して新しいアプリケーションを作成しようとしていますが、かなりの数のネストされたリレーションがあり、かなり難しくなっています。
Rails 側では、Ingredients と Allergens の間に HABTM 関係を使用しています。一連のアレルゲンに関連する成分にアクセスしようとしています. 計画は、配列を使用して Allergens テーブルをクエリし、その ID を取得してから、AllergensIngredients テーブルに対してクエリを実行して、Ingredients ID を取得することでした。
ルートは次のようにネストされます。
resources :ingredients do
resources :allergens
end
URL は「/ingredients/:ingredient_id/allergens」です。Railsでは素晴らしく機能します。バックボーン側では、コレクションを使用して 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
@ingredient は ID がないと見つからないためです。Backbone.sync と $.get を使用してみましたが、それでも URL が必要であり、最終的に Rails コントローラーを通過します。Rails や URL からの干渉なしに、Backbone を使用してデータベース内の単一のテーブルを照会するにはどうすればよいですか? 手伝ってくれてどうもありがとう!