我有一个Rails应用程序,它大量使用created_at
和updated_at
字段。
我发现像Post.last.created_at.to_f
这样的东西会给我一个纪元时间,但我总是需要纪元时间,所以我想知道是否有办法编写一个自动查询后过滤器,每次都会进行转换我致电created_at
和update_at
。现在,每当我读到created_at
/ updated_at
时,我都会重复自己,这是一种糟糕的形式,并且当我忘记进行转换时已经造成了错误。
我正在使用Rails 3.2.13和Ruby 1.9.3p392。
另外,我不能只在我的视图中编写post.created_at.to_f
,因为我正在使用渲染JSON作为输出。
答案 0 :(得分:3)
为什么不制作一个可以修补ActiveRecord::Base
的方法?
def created_epoch
self.created_at.to_f
end
然后你不必记得转换,你只需要使用那种方法。
答案 1 :(得分:2)
我个人认为@tadman提出的方法更好。
created_at方法可以如下所示做你想做的事:
def created_at
created_at= attributes["created_at"]
created_at ? created_at.to_f : nil
end
将其放在模型中或将其附加到ActiveRecord :: Base。在投入生产之前仔细测试。