使用连接的活动记录查询

时间:2016-02-24 15:21:23

标签: ruby-on-rails active-record-query

我有三种不同的型号用户,订单,产品: -

class User < ActiveRecord::Base
  has_many :orders
  has_many :products
end
class Product < ActiveRecord::Base
      has_many :orders
end
class Order < ActiveRecord::Base
  belongs_to :user
  belongs_to :product 
end

如何使用单行有效记录查询查找用户订购的所有产品?

3 个答案:

答案 0 :(得分:3)

此处的另一个选项是使用has_many :through关系:

添加到User模型

has_many :products, through: :orders

现在user.products可以解决问题

答案 1 :(得分:0)

这解释为in the ActiveRecord documentation

Product.joins(:orders).where(orders: { user_id: user.id })

答案 2 :(得分:0)

我终于通过这个

得到了它
@Controller