3

我有一个大量使用created_atandupdated_at字段的 Rails 应用程序。

我发现类似的东西Post.last.created_at.to_f会给我纪元时间,但我总是需要纪元时间,所以我想知道是否有某种方法可以编写一个自动后查询过滤器,每次我调用created_atand时都会进行转换update_at。现在,每次阅读created_at/updated_at我都会重复自己,这是一种不好的形式,并且当我忘记进行转换时已经引起了错误。

我正在使用 Rails 3.2.13 和 Ruby 1.9.3p392。

另外,我不能只post.created_at.to_f在我的视图中写,因为我使用渲染 JSON 作为我的输出。

4

2 回答 2

3

你为什么不做一个你可以修补的方法ActiveRecord::Base

def created_epoch
  self.created_at.to_f
end

然后您不必记住转换,您可以使用该方法代替。

于 2013-07-12T20:18:59.840 回答
2

我个人认为@tadman 建议的方法更好。

created_at 方法可以如下做你想做的:

      def created_at
        created_at= attributes["created_at"]
        created_at ? created_at.to_f : nil
      end

将它放在模型中或附加到 ActiveRecord::Base。在投入生产之前仔细测试它。

于 2013-07-14T19:07:07.147 回答