我在Rails模型中有两个相互关联的列:
Article.body
Article.body_updated_on
每次Article.body_updated_on
更新时,我都希望将Time.now
更改为Article.body
。如果任何其他字段更新,则无需进行任何操作。
答案 0 :(得分:17)
只需在保存回调到文章模型之前添加
class Article < ActiveRecord:Base
before_save :update_body_modified
private # <--- at bottom of model
def update_body_modified
self.body_updated_on = Time.now if body_changed?
end
end
答案 1 :(得分:1)
您可以覆盖body的默认setter,或者更好的是,在更新之前使用callback进行设置。你可以选择几个选项:before_save,before_update ......具体取决于你想要的时间。
before_save do |article|
article.body_updated_on = Time.now if article.body_changed?
end