我想创建一个before_save
仅当三个字段(街道、城市、州)中的任何(但不一定是全部)发生更改时才会运行回调。你怎么做到这一点?谢谢
user.rb
class User
before_save :run_test_method, :if => street_changed?
...
end
选项一
您可以创建一个如下方法:
def ok_to_run_test_method?
street_changed? || something_changed? || something_else_changed?
end
然后使用:
before_save :run_test_method, :if => :ok_to_run_test_method?
注意如何:ok_to_run_test_method?
是一个符号。不确定这是否是一个拼写错误,但在你的问题中你实际上是在调用class method street_changed?
.
选项二
使您的回调现代化一点并使用块样式语法:
before_save do
if street_changed? || something_changed? || something_else_changed?
# whatever you currently have in #run_test_method
end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)