ROR的ActiveRecord属性以回调before_update处理
-
21-09-2019 - |
题
此代码产生的 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
不隶属于 StackOverflow