是否应该为rails中的关联制作表格

时间:2013-02-05 10:25:36

标签: ruby-on-rails models rails-migrations

我是rails的新手并且有一个非常基本的问题。

创建模型时,例如我必须存储食谱及其步骤。现在我应该制作配方表,步骤表和recipe_steps表,还是应该有配方,步骤表和配方模型中定义has_many:steps?

任何帮助都会很棒。

非常感谢

1 个答案:

答案 0 :(得分:0)

您的数据库中始终需要有3个表。正如您所说recipes stepsrecipe_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

我希望这个帮助