Ruby on rails 3 ActiveRecord关联,通过

Ruby on rails 3 ActiveRecord关联,通过,ruby-on-rails-3,activerecord,has-many-through,polymorphic-associations,Ruby On Rails 3,Activerecord,Has Many Through,Polymorphic Associations,我一直在试图把我的头围绕在这些联系上,但我遇到了一点障碍。我正在开发的应用程序目前有两种型号:配料和配方。每种方法背后的逻辑如下: 配料模型包含食品项目的信息,如名称、散装价格等。 配方模型包含配方名称、制备说明和成分列表(以及配方所需的量) 在深入研究了这里的一些问题,并观看了几场铁路赛之后,我决定,对于我尝试做的事情来说,一段“有很多”的关系可能会更好,因为我想在食谱中加入更多关于成分的信息(所需量) 基于我在这方面的有限经验,我想这样做: class Recipe < ActiveR

我一直在试图把我的头围绕在这些联系上,但我遇到了一点障碍。我正在开发的应用程序目前有两种型号:配料和配方。每种方法背后的逻辑如下:

配料模型包含食品项目的信息,如名称、散装价格等。 配方模型包含配方名称、制备说明和成分列表(以及配方所需的量)

在深入研究了这里的一些问题,并观看了几场铁路赛之后,我决定,对于我尝试做的事情来说,一段“有很多”的关系可能会更好,因为我想在食谱中加入更多关于成分的信息(所需量)

基于我在这方面的有限经验,我想这样做:

class Recipe < ActiveRecord::Base
  has_many :ingredients_recipes
  has_many :ingredients, :through => :ingredients_recipes
end

class Ingredient_Recipe < ActiveRecord::Base
  belongs_to :ingredient
  belongs_to :recipe
end

class Ingredient < ActiveRecord::Base
  has_many :ingredients_recipes
  has_many :recipes, :through => :ingredients_recipes
end
类配方:配料\u食谱
结束
类配方:配料\u食谱
结束
其中,配料配方表中的字段与此类似:配方id、配料id、配料数量(用于存储配方中的特定配料数量)

基于我上面提到的功能,这是正确的代码方式吗?任何帮助都将不胜感激。谢谢

编辑
我还希望能够从配方表单中向配方添加这些新成分。这需要额外的东西吗,比如必须为through表执行accepts\u nested\u attributes\u,或者这是Rails自己可以处理的吗?

当一个对象可以连接零个或多个其他对象时,
:has_many to
方法效果最好

例如,在您的情况下,您将在
连接
表中存储每种配料的量以及配方id和配料id

所以,我觉得它很好。:)


但是,您应该考虑将您的<代码> BoeTrimeCudio表命名为更合适的。

什么是更合适的名称?