此代码生成 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,导致代码worked,尽管不是简洁的。
干杯!
答案 0 :(得分: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