我有一个模型类,如下所示:
class Product < ActiveRecord::Base
belongs_to :user;
attr_accessible :price
before_save :check_if_price_changed
after_save :notify_about_price_change
def check_if_price_changed
if (price.changed?) then
@price_changed = true
else
@price_changed = false
end
end
....
我希望在将产品保存到数据库之前记录产品价格是否已更改。然后,我有一个例程,一旦产品以新价格成功保留,就会进行通知。但是当我尝试检查price属性是否为脏时,我收到以下错误:
undefined method `changed?' for 20:Fixnum
rails 3.1中不支持开箱即用的方法吗?我是错误地调用它还是在错误的层(模型与控制器)中调用它?
答案 0 :(得分:4)