新手问题 [已解决] before_save 包含的动作其实是 update 和 new,所以 update_attribute 也会触发 before_save?

Catherine · 2016年01月25日 · 最后由 w7938940 回复于 2016年01月25日 · 1799 次阅读

update_attribute 文档里就说会触发,但到底是会触发跟 update 有关的回调,还是触发所有回调没有说清楚。


会触发。

会触发回调。。。#update_attribute 方法在调用失败的时候不会触发 exception

# File activerecord/lib/active_record/persistence.rb, line 237
def update_attribute(name, value)
  name = name.to_s
  verify_readonly_attribute(name)
  send("#{name}=", value)
  save(validate: false)
end

我的理解是update_attribute方法里面有 save 操作,所以会调用 before_save 方法。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号