Rails 3 Ruby 1.9

我的应用程序有一个购物车,以下模型为line_items,订单和产品。 产品模型具有2个价格属性msrp和discount_price line_items模型具有product_price属性

我正在尝试编写一个使用product_id的助手方法,遍历所有已完成的订单,然后选择并汇总product_price = msrp的订单项。

我的产品型号

 class Product < ActiveRecord::Base

 has_many :line_items
 has_many :orders, through: :line_items

 end

我的订单模型

 class Order < ActiveRecord::Base

 has_many :line_items, dependent: :destroy

 end

我的Line_Items模型

 class LineItem < ActiveRecord::Base  

 belongs_to :order
 belongs_to :product
 belongs_to :cart

 def self.total_sold_msrp(product)
 where("line_items.order_id IS NOT NULL AND line_items.product_id = product.id AND line_items.product_price = product.msrp")
 end


 end  

辅助模块

 module StoreHelper

 def full_price_qty_sold (product)
 full_price_qty_sold = product.line_items.total_sold_msrp(product).sum("quantity")
 end

 end

当我执行程序时,出现此错误“ SQLException:无此类列:product.id product.msrp”

看起来该应用程序正在查找名为product.id和product.msrp的列,而不是在查询SQL表时使用product.id和product.msrp的实际值。

===============>>#1 票数:1 已采纳

看起来该应用程序正在查找名为product.id和product.msrp的列,而不是在查询SQL表时使用product.id和product.msrp的实际值。

究竟。 将值传递给查询的正确方法是

 where("line_items.order_id IS NOT NULL AND line_items.product_id = ? AND line_items.product_price = ?", product.id, product.msrp)

  ask by Renegade translate from so

未解决问题?本站智能推荐: