2012-09-13 40 views
4

更新更改的列值我有一個Rails模型彼此相關的兩列:Ruby on Rails的,對其他的列值

Article.body 
Article.body_updated_on 

我想改變Article.body_updated_onTime.now,每次Article.body更新。如果任何其他領域更新沒有任何需要發生。

回答

15

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

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 
+0

謝謝..你救了我的命...... – geekdeepak

1

您可以覆蓋body的默認設置器,或者更好的方法是使用callback在更新前設置它。您可以從幾個選項中進行選擇:before_save,before_update ...取決於您想要的時間。

before_save do |article| 
    article.body_updated_on = Time.now if article.body_changed? 
end