使用联接的活动记录查询
Active record query using joins
我有三种不同的模型用户、订单、产品:-
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
如何使用一行活动记录查询查找用户订购的所有产品?
这个解释in the ActiveRecord documentation:
Product.joins(:orders).where(orders: { user_id: user.id })
此处的另一个选项是使用 has_many :through 关系:
添加到 User
模型
has_many :products, through: :orders
现在 user.products
成功了
终于通过这个搞定了
Product.joins(:orders).where(order: { user_id: user.id })
我有三种不同的模型用户、订单、产品:-
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
如何使用一行活动记录查询查找用户订购的所有产品?
这个解释in the ActiveRecord documentation:
Product.joins(:orders).where(orders: { user_id: user.id })
此处的另一个选项是使用 has_many :through 关系:
添加到 User
模型
has_many :products, through: :orders
现在 user.products
成功了
终于通过这个搞定了
Product.joins(:orders).where(order: { user_id: user.id })