我有两个 Rails 3 模型,Product
并Room
在下面定义。每个 Room 可以有多个产品,每个产品可以在多个房间中:
class Product < ActiveRecord::Base
#...
has_many :rooms, :through => :product_selection
has_many :product_selection
end
class Room < ActiveRecord::Base
#...
has_many :products, :through => :product_selection
has_many :product_selection
end
class ProductSelection < ActiveRecord::Base
#...
belongs_to :product
belongs_to :room
end
我想在其中创建一个查询rooms_controller.rb
以返回前 10 个房间的记录,并为每个房间包括推送到该房间的产品数量的计数(以了解每个房间中有多少产品)和总和Product 中的一列要求cost
房间中的所有产品(以获取房间中所有产品的总成本)。调用查询后,理想情况下,我可以调用@rooms[i].total_products
和@rooms[i].total_cost
(或类似的东西)以及 Room 字段,这样它就可以很容易地被模板消化和迭代。
我知道我可以创建 10 个不同的调用,然后以 @room.products.count 和 @room.products.sum(cost) 的形式循环遍历每个调用,但必须有一种更有效的方法......而且我有一种感觉俯瞰明显的东西。
谢谢!!