保存时忽略before_update

时间:2010-10-22 02:53:46

标签: ruby-on-rails ruby activerecord save before-filter

某些情况我不想执行before_update。请帮我。

案例A:如果我想使用before_update

obj = Object.find(id)
obj.save

但是案例B我不想使用before_update

obj = Object.find(id)
obj.save # in case I want used before_update

2 个答案:

答案 0 :(得分:3)

方法#save接受哈希选项。要跳过验证:

obj.save(:validate => false)

这是使用公共API跳过验证的文档化方法。不要尝试使用send调用内部方法,否则您的应用程序将来可能无法正常工作。

答案 1 :(得分:0)

update_without_callbacks和create_without_callbacks是私有方法。这些方法不会调用任何回调。

obj = Object.find(id)
obj.send(:update_without_callbacks)

obj = Object.new(:name => 'foo')
obj.send(:create_without_callbacks)