我正在创建一个CourseEnrollment模型,每当用户查看该课程时,我想用当前时间戳更新数据库。我应该只更新现有的updated_at字段还是为模型创建一个单独的字段?
答案 0 :(得分:11)
答案 1 :(得分:5)
我要创建一个单独的字段。 updated_at
并没有真正正确地传达其目的。像last_viewed_at
这样的东西会更合适。当然,更新updated_at
时会更新last_viewed_at
,因此当您要做的只是更新该列时,您需要找到一种方法来覆盖它。
您可以通过在self.record_timestamps
中将before_filter
设置为false,然后在after_filter
中重新启用来暂时停用时间戳更新。
答案 2 :(得分:0)
如果我理解正确,你想在CourseEnrollment中创建一个名为last_viewed_at的列,只要用户查看了一个被调用的列,就会设置该列?
如果要这样做,请创建一个迁移以将last_viewed_at列添加到CourseEnrollment(不要覆盖rails updated_at字段)。然后,在控制器逻辑或模型级别中,您可以更新该字段。这取决于您希望如何实现它。