Ruby on rails 是否应该为rails中的关联创建一个表

Ruby on rails 是否应该为rails中的关联创建一个表,ruby-on-rails,models,rails-migrations,Ruby On Rails,Models,Rails Migrations,我是rails新手,有一个非常基本的问题 在创建模型时,例如,我必须存储配方及其步骤。现在我应该制作配方表、步骤表和配方步骤表,还是应该制作配方表、步骤表和配方定义模型中的多个步骤 任何帮助都会很好 非常感谢您的数据库中始终需要有3个表。正如你所说的配方步骤和配方(步骤 然后,您的模型有两个解决方案。第一个有3个型号: class Recipe has_many :recipe_steps has_many :steps, through: :recipe_steps end clas

我是rails新手,有一个非常基本的问题

在创建模型时,例如,我必须存储配方及其步骤。现在我应该制作配方表、步骤表和配方步骤表,还是应该制作配方表、步骤表和配方定义模型中的多个步骤

任何帮助都会很好


非常感谢

您的数据库中始终需要有3个表。正如你所说的
配方
步骤
配方(步骤

然后,您的模型有两个解决方案。第一个有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\u steps
表中的数据,您将使用第二种解决方案。但是,如果要在此表中添加一些信息(例如价格或数量),则必须使用第一种解决方案

在所有情况下,都必须创建3个表

您可以在此处找到更多信息:


我希望这有帮助

谢谢库普拉:那很有帮助。虽然我认为我需要澄清,但每个配方都有多个步骤,基本上是一对多的关系。在这种情况下,我们也需要3个表吗?对于一对多关系,您不需要3个表。对于具有一个关系的模型,您将有两个表,其中一个
属于
,而对于另一个模型,
具有多个
。你会在这里找到更多信息:是的,谢谢库普拉。谢谢你的帮助。我完全按照你的建议去做,我想知道我在做什么。再次感谢。