私はこれらの関連付けに頭を悩ませようとしてきましたが、ちょっとした問題にぶつかりました。私が取り組んでいるアプリには、現在2つのモデルがあります。材料とレシピです。それぞれの背後にあるロジックは次のとおりです。
材料モデルには、名前、バルク価格などの食品に関する情報が含まれています。レシピモデルには、レシピの名前、準備手順、および材料のリスト(レシピに必要な量とともに)が含まれています。
ここでいくつかの質問を掘り下げ、いくつかのレールキャストを見て、レシピに材料に関する追加情報を含めたいので、has_many_throughの関係が私がやろうとしていることに適している可能性があると判断しました(必要な量)。
この分野での私の限られた経験に基づいて、私はこのようにアプローチしたいと思います:
class Recipe < ActiveRecord::Base
has_many :ingredients_recipes
has_many :ingredients, :through => :ingredients_recipes
end
class Ingredient_Recipe < ActiveRecord::Base
belongs_to :ingredient
belongs_to :recipe
end
class Ingredient < ActiveRecord::Base
has_many :ingredients_recipes
has_many :recipes, :through => :ingredients_recipes
end
components_recipesテーブルに次のようなフィールドがある場合:recipe_id、component_id、component_qty(レシピに含まれる特定の材料の量を保存するため)
これは、上記の機能に基づいて、コード的にアプローチするための適切な方法ですか?どんな助けでも大歓迎です。ありがとう!
編集 また、これらの新しい材料をレシピフォームからレシピに追加できるようにしたいと思います。これには、throughテーブルに対してaccepts_nested_attributes_を実行する必要があるなど、追加の何かが必要ですか、それともRailsが独自に処理するものですか?