我是rails的新手并且有一个非常基本的问题。
创建模型时,例如我必须存储食谱及其步骤。现在我应该制作配方表,步骤表和recipe_steps表,还是应该有配方,步骤表和配方模型中定义has_many:steps?
任何帮助都会很棒。
非常感谢
答案 0 :(得分:0)
您的数据库中始终需要有3个表。正如您所说recipes
steps
和recipe_steps
然后您的模型有两个解决方案。第一个有3个型号:
class Recipe
has_many :recipe_steps
has_many :steps, through: :recipe_steps
end
class Step
has_many :recipe_steps
has_many :recipes, through: :recipe_steps
end
class RecipeStep
belongs_to :step
belongs_to :recipe
end
第二个只有两个型号:
class Recipe
has_and_belongs_to_many :steps
end
class Step
has_and_belongs_to_many :recipes
end
如果您不想管理recipe_steps
表中的数据,则将使用第二个解决方案。但是,如果您想在此表中添加一些信息(例如价格或数量),则必须使用第一个解决方案。
在所有情况下,您必须创建3个表。
您可以在此处找到更多信息:http://guides.rubyonrails.org/association_basics.html
我希望这个帮助