2011-03-09 117 views
2

我有一個字段,存儲last_viewed時間。通過進行更新這一領域的最佳途徑:更新last_viewed現場導軌

@course_enrollment.last_viewed = Time.now 
@course_enrollment.save() 

這個字段是一個日期作爲數據庫類型和時間戳的軌道遷移類型。

回答

2

如果你是在一個控制器調用此我可能會做這樣的事情:

class CourseEnrollment < AR::Base 
    # ... 

    def mark_as_viewed 
    update_attributes(:last_viewed => Time.now) 
    end 
end 

# in controller 
@course_enrollment.mark_as_viewed 

這樣你可以很容易地單元測試它並從控制器中刪除一些邏輯。

1

正是豆蔻更少的代碼做這樣的:

@course_enrollment.update_attributes(:last_viewed => Time.now) 
1

正確的方式做,這將是touch記錄:

@course_enrollment.touch(:last_viewed) 

這將更新last_viewedupdated_at列到當前的時間。