Ruby on rails Rails三重关联

Ruby on rails Rails三重关联,ruby-on-rails,Ruby On Rails,考虑三种模型。一个用户、一个库存和一个库存项目 用户属于库存。一个清单有一个用户。一个存货有许多存货项目,一个存货项目属于存货。(我知道一个用户有一个清单可能会更好,但在进行关联时,我对ruby的了解较少) 现在,我想知道什么是最好的方法,比如说,检查用户的库存中是否有特定的物品 你觉得怎么样?也许你也会建议我改变我的联想?我愿意接受批评:)我认为你应该使用:通过=>.选项有很多。例如: class User ... has_many :inventory_items, :through =

考虑三种模型。一个用户、一个库存和一个库存项目

用户属于库存。一个清单有一个用户。一个存货有许多存货项目,一个存货项目属于存货。(我知道一个用户有一个清单可能会更好,但在进行关联时,我对ruby的了解较少)

现在,我想知道什么是最好的方法,比如说,检查用户的库存中是否有特定的物品


你觉得怎么样?也许你也会建议我改变我的联想?我愿意接受批评:)

我认为你应该使用
:通过=>.
选项
有很多。例如:

class User ...
  has_many :inventory_items, :through => :inventories 

  ...
end
然后,您可以在用户的
inventory\u items
集合上使用
find

user = User.first
item = user.inventory_items.find(...)

有关更多信息,请参阅
ActiveRecord::Associations::ClassMethods的rails api文档。发布您的关联的实际代码(而不是其他模型)可能值得,只是为了让关联绝对清晰。Gregor下面的回答是好的,但我认为如果你的用户和你的库存没有关系,这是行不通的。这种情况下的解决方案是修复您的关联,然后应用Gregor的解决方案。