1

此代码产生一个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,这导致代码有效,尽管不简洁。

干杯!

4

1 回答 1

1
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
于 2009-11-19T20:55:03.170 回答