rails3 更新时间问题(updated_at)
(未完)
ruby:1.9.2
rails:3.0.3
一般来说,对表进行设计时候,如果不做对创建时间与更新时间做任何处理的话,rails则会默认给你加上。用来监控表中的记录
创建记录
rails会把现当前的时间作为值,同时设置给created_at与updated_at
更新记录
如果表中的记录发生变更的话,则会更新updated_at这个时间戳高
实际的情况是怎么样的呢?
在调用update,save,update_attributes后,rails 会判断待修改记录中的是否有字段发生改变,
如果发生改变,则去更新这个updated_at 时间戳
如果没有发生改变,这时,并不会更新这个updated_at时间戳
注意,如果调用increment!或decrement!来改变计数的话,是不会更新updated_at时间戳的
使用touch处理表之间的更新关系
如果出现层次关系的表,子表的数据发生变化,需要更新主表的updated_at,这时如何处理
例如:post内容发生变化,需要更新topic表的时间updated_at时间戳
在post mode中的topic建立的belongs_to关系中,添加选项:touch =>true
belongs_to :topic, :touch => true
这时,只要post调用save,update, update_attributes就会更新topic的updated_at时间。。。
以上,仅是实验中得来,具体依据尚未充足