gpt4 book ai didi

ruby-on-rails - 如何在Ruby on Rails中使用if语句为多个更改的字段创建回调?

转载 作者:行者123 更新时间:2023-12-04 03:52:41 24 4
gpt4 key购买 nike

我想创建一个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?如何是一个符号。不知道这是不是拼写错误,但是在您的问题中,您实际上是在调用 方法 street_changed?

选项二

稍微现代化您的回调,并使用块样式语法:
before_save do
if street_changed? || something_changed? || something_else_changed?
# whatever you currently have in #run_test_method
end
end

关于ruby-on-rails - 如何在Ruby on Rails中使用if语句为多个更改的字段创建回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12888812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com