rails3 更新时间问题

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时间。。。

 

 

以上,仅是实验中得来,具体依据尚未充足

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值