解释“updated_at”的工作原理

时间:2015-12-26 21:16:19

标签: ruby-on-rails database

有人可以向新手解释Rails数据库中“updated_at”的工作原理吗?

我想实现一个“last_updated_by”函数,我不知道db如何保存last_at日期并覆盖前一个日期。

我在更新模型的信息时尝试将用户名保存为hidden_​​field_tag的参数,但它让我无处可去。

3 个答案:

答案 0 :(得分:1)

首先,我在表格中创建了last_edited_by列。 然后我在控制器操作中使用update_column方法用当前用户名覆盖last_edited_by值。

答案 1 :(得分:0)

要真正了解其工作原理,可以在https://github.com/rails/rails/blob/5-2-stable/activerecord/lib/active_record/timestamp.rb上查看源代码

它基本上检查has_changes_to_save?,如果是真的,则将updated_at / created_at设置为Time.now.utc

答案 2 :(得分:-1)

我不确定您是要保存用户名还是仅保存对用户对象的引用。

我建议您使用userstamp gem,它会为您的模型创建created_byupdated_by属性,您可以轻松地将其与您的用户模型集成。< / p>

如果你使用的是Rails 4,我建议你看一下这个主题:How to configure userstamp for rails 4

rails 4不完全支持UserStamp,因此您需要查看以上主题。