我对rails很新,我正在设置我的模型。我的应用程序的某个部分依赖于三个独立的模型。
has_many :recipe_ingredients
belongs_to :recipe
has_one :ingredient
#blank right now
这是一个合适的模特组织吗?我将配方成分作为单独模型的原因是因为我想将重量和数量值存储到它。
谢谢,
乔
答案 0 :(得分:3)
我说这几乎是正确的。唯一的问题是因为RecipeIngredient has_one
成分,成分记录必须存储recipe_ingredient_id(参见has_one association),因此单个成分将被绑定到recipe_ingredient(因此相关的配方)。这可以防止您为不同的配方重复使用相同的成分。
相反,请使用以下内容:
配方:
has_many :recipe_ingredients
has_many :ingredients, :through => :recipe_ingredients
RecipeIngredient:
belongs_to :recipe
belongs_to :ingredient
成分:
has_many :recipe_ingredients
has_many :recipes, :through => recipe_ingredients
这在食谱和配料之间建立了多对多的关系,因此可以将配料重复用于多种配方。每种成分的数量将存储在RecipeIngredients中。
如果您需要澄清,请告诉我。