在我的应用程序中,Post
模型具有属性title
& price
等。
当before_action
发生变化时,我有2个title
我想要 price
更改后的其他 。
class Post < ActiveRecord::Base
before_update :do_something_with_title
before_update :do_something_with_price
def do_something_with_title
// my code for title here
end
def do_something_with_price?
// my code for price here
end
我知道我可以使用changed?
并before_action
if:
post
条件,但这会在title
中的任何属性发生变化时适用,而不仅仅是{{1} }&amp; price
已发生变化。
感谢任何帮助!
答案 0 :(得分:1)
您可以使用title_changed?
或price_changed?
class Post < ActiveRecord::Base
before_update :do_something_with_title, if: :title_changed?
before_update :do_something_with_price, if: :price_changed?
end
答案 1 :(得分:0)
您可以使用
class Post < ActiveRecord::Base
before_update :do_something_with_title, if: :title_changed?
before_update :do_something_with_price, if: :price_changed?
...
end
或
class Post < ActiveRecord::Base
before_update { |post| post.do_something_with_title if post.title_changed? }
before_update { |post| post.do_something_with_price if post.price_changed? }
...
end