0

私はRuby on Railsの初心者なので、2つの列の各行の値を掛け合わせて新しいオブジェクトに保存しようとしています。私はmysqlでそれを行う方法を知っていますが、.erbファイルでこのようなことをすると

@ordertotals = Orderline.where(:id =>  @orderparts.id).sum("quantity * price")

このエラーが発生します

undefined method `where' for #<Class:0x7f843ff72ce8>

私は周りを見回しており、私が理解している場所検索を実際に行う方法の説明を見つけることができません。実際にモデルファイルに入れる必要があるものを見てきましたが、モデルでそれを定義する方法や、.erbファイルから必要な情報を渡してそれを呼び出す方法をどこから始めればよいかわかりません。誰かがこれを説明できますか?

class Orderline < ActiveRecord::Base

belongs_to :order
end
4

2 に答える 2

2

whereRails 3.x でのみ追加されました。Rails 2.3.x を使用しているため、古い構文を使用する必要があります。

@ordertotals = Orderline.find(:all, :conditions => ["id = ?", @orderparts.id], :select => "quantity * price as total_price")

構文が正しいことを願っています。それをテストするためにRails 2を持っていません。

于 2013-11-07T04:32:30.407 に答える
0

Rails 2.3.x の構文

@ordertotals = Orderline.all(:conditions=>"id='#{@orderparts.id}'",:select=>"quantity * price as PRODUCT")
于 2013-11-07T04:24:30.637 に答える