0

我对rails有点陌生,正在设置我的模型。我的应用程序的某个部分依赖于三个独立的模型。

食谱

has_many :recipe_ingredients

配方成分

belongs_to :recipe
has_one :ingredient

成分

#blank right now

这是合适的模范组织吗?我将配方成分作为单独模型的原因是因为我想将重量和数量值存储到它。

谢谢,

4

1 回答 1

3

我会说这几乎是正确的。唯一的问题是,因为 RecipeIngredienthas_one成分,成分记录必须存储 recipe_ingredient_id(请参阅has_one 关联),因此单个成分将绑定到 recipe_ingredient(因此关联的配方)。这可以防止您在不同的食谱中重复使用相同的成分。

相反,请使用以下内容:

食谱:

has_many :recipe_ingredients
has_many :ingredients, :through => :recipe_ingredients

配方成分:

belongs_to :recipe
belongs_to :ingredient

成分:

has_many :recipe_ingredients
has_many :recipes, :through => recipe_ingredients

这在食谱和成分之间建立了多对多的关系,因此成分可以重复用于多个食谱。每种成分的数量将存储在 RecipeIngredients 中。

如果您需要澄清,请告诉我。

于 2012-07-13T23:00:51.307 回答