有人可以向新手解释Rails数据库中“updated_at”的工作原理吗?
我想实现一个“last_updated_by”函数,我不知道db如何保存last_at日期并覆盖前一个日期。
我在更新模型的信息时尝试将用户名保存为hidden_field_tag的参数,但它让我无处可去。
答案 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_by
和updated_by
属性,您可以轻松地将其与您的用户模型集成。< / p>
如果你使用的是Rails 4,我建议你看一下这个主题:How to configure userstamp for rails 4
rails 4不完全支持UserStamp,因此您需要查看以上主题。