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

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

4回复

Rails 4按模型方法求和

在我的应用程序中,我有一个User模型,带有goal_ytd方法,它执行一些计算。 在一个控制器中,我有一个变量@users ,可能是User或ActiveRecord::Relation goal_ytd的users ,我想总结所有@users的goal_ytd 。 我的第一个倾向
1回复

更新连接模型的额外属性的标准方法 - Rails

再次来到rails的新手。 实际上我在这里问了一个类似的问题: 在has_many中通过关联更新连接模型额外属性有困难--Rails ,但是我认为我已经向错误的方向和复杂的方式询问了,所以想开一个新问题以更简单,更精确的方式。 想知道当我在has_many through:的连接模型
2回复

使用inject方法对阵列导轨的实例求和

我有一个名为@jdc_array的实例变量,经检查其内容如下所示: 我想对cost_per_unit:所有实例求和cost_per_unit:所以我创建了这个方法 然后像这样调用方法: 但是我很奇怪地得到了这个错误! 三个问题。 为什么会出现此错误,我该如何解决
4回复

Rails如何对列求和?

示例我有: 在我的Pakke表格中,我有一列名为prismd的列 如何对@test的prismd列的两个值求和?
3回复

在Rails中制作各种类型用户的标准方法是什么?

我开始的项目有多种用户,基本上是买家和卖家模型。 某些属性适用于不向卖方提供的买方,但它们共享许多基本用户特征。 如果它不是一个Web应用程序,我知道如何继承,但在rails中执行此操作的正确方法是什么?
6回复

将db转储到rails中的yml fixture的标准方法是什么?

我已经看到一些插件和自定义rake任务将活动数据库转储到灯具,但我不确定主流技术是什么。 基本上,我想要与rake相反:db:fixtures:load,以便我可以在部署时将基本数据库信息(管理员用户帐户,一个)放入svn中。 我不想手动创建夹具,例如需要很长时间的样本数据。 当我
2回复

部署Rails应用程序的当前标准方法是什么?

到目前为止,我一直在使用我编写的简单Rake任务将Rails应用程序部署到我们的Apache / Passenger设置。 我没有试图与Capistrano或Vlad the Deployer混淆 。 但是,现在越来越多的开发人员加入进来,我很有兴趣安排事情,以便部署过程首先运行测试,除
1回复

对于方法派生的属性,求和函数中将nil视为零(Rails 4.2)

我有一个表,该表从Product模型中以number_to_currency(product.heritable_rental_price.to_f * product.quantity.to_f)列出了产品的租金价格,其中百分比是从默认值得出的,而其工作价值可用产品: 我正在使用将零作
1回复

如何使用jQuery AJAX请求和Ruby on Rails'render'方法来实现?

我正在使用Ruby on Rails 3.0.7和jQuery 1.6.1,我想知道如何在AJAX请求之后处理响应xhr , status和ex变量。 AJAX请求是: 在控制器中我有: 应该如何在控制器中声明render方法来响应AJAX请求,以便能够在AJAX请求的er
1回复

Rails发布请求和响应

我不熟悉HTTP,如果这是一个愚蠢的问题,请原谅我。 我正在创建一个后端Rails api,以在我的android应用中存储/验证用户。 我想做的是用户首次登录,我向Rails服务器发送发布请求以创建一个新用户。 创建用户后,我想将应用发送回用户的auth_token(以后将用于验证用