此代码产生的 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