我的模型X
belongs_to :y
并且有一个字段quantity
Y
型号:
has_many :xs
belongs_to :user
belongs_to :z
User
型号:
has_many :ys
has_many :xs, :through => :ys
Z
型号
has_many :ys
has_many :users, :through => :ys
如何找到用户对特定xs
的{{1}}个用户数?
如何找到用户对特定z
xs
的数量字段的总和?
我想找到一个使用rails 3的活动记录查询语法的解决方案,请尽可能在数据库级别进行。我很感激任何帮助。
答案 0 :(得分:0)
让我试着以另一种方式翻译它。
X模型成为购物车项目
class CartItem
belongs_to :cart
attr_accessor :quantity
end
Y模型成为购物车
class Cart
has_many :cart_items
belongs_to :user
belongs_to :section
end
用户模型保持不变
class User
has_many :carts
has_many :cart_items, :through => :carts
end
Z模型成为一个部分
class Section
has_many :carts
has_many :users, :through => :carts
end
因此,你问:
将以下范围添加到CartItem
scope :for_section, lambda { |section|
includes(:cart).where('carts.section_id = ?', section.id)
}
答案将是
这些命令将生成确切的SQL查询以查找您正在寻找的答案!