Rails - 什么是正确的3向表关系?

时间:2016-05-15 13:21:26

标签: ruby-on-rails-4 rails-activerecord has-many-through has-and-belongs-to-many

我正在处理一个我决定建立关系的应用程序。情况是这样的:

实施的关系是:

Category has_many Items
Outlets HABTM Categories

问题是Outlets需要与Item模型有多对多的关系。现在我可以简单地实现它:

Outlet HABTM Items

这将为我提供一个包含outlet_iditem_id的表格,但在这种情况下,我不确定如何找到分配给它的某个类别的商品列表。

我也看到了has_many :through示例,但它也建议在表中有两个外键;我认为在这种情况下应该有三个outlet_idcategory_iditem_id,其中所有3个的组合将是唯一的。

我可以使用原始SQL查询轻松实现这一点,但我还没有使用任何原始查询,并希望尽可能避免。如何使用模型关系正确地完成此操作?

1 个答案:

答案 0 :(得分:0)

我会这样做:

Outlet has_many categories & Category has_many items

这样,我们就可以获得items中特定category的所有outlet,还可以获得outletcategories的所有项目。