我一直在試圖圍繞這些關聯包裹我的頭,我遇到了一點障礙。我正在製作的應用程序目前有2個模型:配料和配方。每個背後的邏輯如下:ActiveRecord協會,has_many_through
成分模型包含食品項目的信息,例如名稱,批量價格等。 食譜模型包含食譜的名稱,準備說明和成分列表(以及配方所需的金額)。
在深入研究了這裏的一些問題並觀看了一些railscast之後,我確定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
凡ingredients_recipes表將具有類似這樣的領域:recipe_id,ingredient_id,ingredient_qty(用於存儲如何許多特定的成分在配方中)
這是基於我上面提到的功能以代碼方式處理它的正確方法嗎?任何幫助將不勝感激。謝謝!
編輯 我也希望能夠從配方表單中添加這些新配料。這是否需要額外的東西,比如必須爲through表做accept_nested_attributes_,或者Rails會自己處理這些東西?
什麼會是一個更合適的名字? – Onichan