Ruby on rails ROR ActiveRecord属性在更新前使用回调进行处理

Ruby on rails ROR ActiveRecord属性在更新前使用回调进行处理,ruby-on-rails,activerecord,beforeupdate,Ruby On Rails,Activerecord,Beforeupdate,此代码生成一个ActiveRecordError: 回调必须是表示 要调用的方法,要调用的字符串 已计算、要调用的块,或 响应回调的对象 方法。” 在更新之前:检查instock,:除非=>Proc.new{{| inventory{124; inventory.needed.nil} def检查仪表盘 如果需要:不需要库存? before_update :set_instock, :unless => :inventory_not_needed? private def set_in

此代码生成一个ActiveRecordError

回调必须是表示 要调用的方法,要调用的字符串 已计算、要调用的块,或 响应回调的对象 方法。”

在更新之前:检查instock,:除非=>Proc.new{{| inventory{124; inventory.needed.nil}
def检查仪表盘
如果需要<数量
instock=true
其他的
instock=false
结束
结束
这段代码放在我的库存模型中,我试图在调用@inventory.update_attributes(controller)之前处理一些逻辑。以前我多次调用@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
私有的 def set_instock self.instock=(需要<金额)?真:假 结束 是否不需要def库存? 需要。零? 结束
更新前:设置库存:除非=>:不需要库存?
私有的
def set_instock
self.instock=(需要<金额)?真:假
结束
是否不需要def库存?
需要。零?
结束
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