Ruby on rails 从关联中获取数据

Ruby on rails 从关联中获取数据,ruby-on-rails,activerecord,ruby-on-rails-4,Ruby On Rails,Activerecord,Ruby On Rails 4,我有3个实体:产品、对象、密钥 Product had many Objects Objects has many Products Product And Object has many Keys 我如何为一个产品获取所有对象及其密钥?一个对象可以有许多关键点。钥匙也可以有两种类型(:type=1,:type=2) 目前我有一个可用的代码,但是有很多循环,我想学习做这些事情的不同方法对象对于rails应用程序中的表来说是一个非常糟糕的名字 class Product # thats a

我有3个实体:
产品、对象、密钥

Product had many Objects
Objects has many Products
Product And Object has many Keys
我如何为一个产品获取所有对象及其密钥?一个对象可以有许多关键点。钥匙也可以有两种类型
(:type=1,:type=2)


目前我有一个可用的代码,但是有很多循环,我想学习做这些事情的不同方法

对象对于rails应用程序中的表来说是一个非常糟糕的名字

class Product
   # thats a table with product_id and object_id and key_id
   has_many :product_item_relations 
   has_many :items, :through => :object_relations
end 

class Item
  has_many :product_item_relations
  has_many :products, :through => :item_relations
end

class ProductItemRelation
  belongs_to :item
  belongs_to :product
  has_many :key_elements
end

class KeyElement
  belongs_to :product_item_relation
end
并要求关键要素

ProductItemRelation.where( :product_id => pid, :item_id => iid ).key_elements

为什么要给rails、rails 3、rails 3.1和rails 4添加标签?是哪一个?对不起,我使用的是rails 4。最好将您的
对象
模型重命名为
或类似的名称,以避免与ruby
对象
类发生冲突。这只是一个示例。这个示例有点模糊,您能再显示一些代码吗?例如,您正在谈论的循环。不起作用,PG::UndefinedColumn:错误:列键元素。产品项关系。id不存在于KeyElements中的键入错误-属于,没有错误地键入s,错误是因为我在KeyElement表中没有product项关系id列。