Rails 3修改updated_at

时间:2011-03-08 16:13:10

标签: ruby-on-rails

我正在创建一个CourseEnrollment模型,每当用户查看该课程时,我想用当前时间戳更新数据库。我应该只更新现有的updated_at字段还是为模型创建一个单独的字段?

3 个答案:

答案 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字段)。然后,在控制器逻辑或模型级别中,您可以更新该字段。这取决于您希望如何实现它。