質問

このコードはのActiveRecordErrorのを生成

  

コールバックは、シンボル示すなければなりません   であるためには、文字列を呼び出すメソッド   評価ブロックが呼び出される、または   コールバックに対応したオブジェクト   メソッド。 "

before_update :check_instock, :unless => Proc.new { |inventory| inventory.needed.nil? } 

def check_instock
  if needed < amount
    instock = true
  else
    instock = false
  end
end

このコードは、私の在庫モデルに配置され、私は前inventory.update_attributes(コントローラ)@を呼び出すにいくつかのロジックを処理しようとしています。以前、私はinventory.update_attributes @コードの結果を複数回、呼んでいたことない簡潔にいえ、に働きました。

乾杯!

役に立ちましたか?

解決

before_update :set_instock, :unless => :inventory_not_needed?

private

def set_instock
  self.instock = (needed < amount) ? true : false
end

def inventory_not_needed?
  needed.nil?
end
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top