2011-03-09 47 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列到当前的时间。