Rails 3 のチュートリアルに従って、注文列を制限するように定義されたスコープと、結果のスコープを合計するヘルパー メソッドがあります。
class LineItem < ActiveRecord::Base
attr_accessible :cart_id, :product_id, :cart, :product, :quantity
belongs_to :order
belongs_to :product
belongs_to :cart
scope :order, -> {where("order != nil")}
end
ヘルパー
module StoreHelper
def total_product_sold (product)
product.line_items.total_product.sum("quantity")
end
問題は、ビューから total_product_sold を呼び出すと、注文番号が !=nil のデータだけではなく、注文列のすべてのデータが合計されることです。
スコープではなく、クラスメソッドを定義してみました
def self.total_product
where(order !=nil)
end
しかし、これは私にまったく同じ結果をもたらします。私は何を間違っていますか?注文列が nil でないアイテムのみを追加するにはどうすればよいですか?