6

我在 Rails 模型中有两列相互关联:

Article.body
Article.body_updated_on

我想更改Article.body_updated_onTime.now,每次Article.body都更新。如果任何其他字段更新,则无需发生任何事情。

4

2 回答 2

20

只需在保存回调之前添加到您的文章模型

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
于 2012-09-13T01:08:25.730 回答
1

您可以覆盖 body 的默认设置器,或者更好的是,在更新之前使用回调来设置它。您可以从以下几个选项中进行选择:before_save、before_update ... 取决于您需要的确切时间。

 before_save do |article|
   article.body_updated_on = Time.now if article.body_changed?
 end
于 2012-09-13T00:52:49.580 回答