Ruby on rails 如何将所有时间戳转换为Unix时间戳?

Ruby on rails 如何将所有时间戳转换为Unix时间戳?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我的iOS开发人员要求我提供JSON结构中的所有时间戳为Unix时间戳,作为自“1970年1月1日星期四00:00协调世界时(UTC)”以来经过的秒数,不包括闰秒 鉴于我的所有数据都存储在服务器上的字符串中,我想创建一个方法,将所有时间戳转换为整数形式的Unix时间戳 换句话说,我需要转换: { "created_at" => "2015-01-18T00:58:58.903Z", "updated_at" => "2015-01-18T00:58:58.903Z",

我的iOS开发人员要求我提供JSON结构中的所有时间戳为Unix时间戳,作为自“1970年1月1日星期四00:00协调世界时(UTC)”以来经过的秒数,不包括闰秒

鉴于我的所有数据都存储在服务器上的字符串中,我想创建一个方法,将所有时间戳转换为整数形式的Unix时间戳

换句话说,我需要转换:

{
  "created_at" => "2015-01-18T00:58:58.903Z", 
  "updated_at" => "2015-01-18T00:58:58.903Z", 
  "user_id" => 1, 
  "status_id" => 1
}
致:


我编写了以下rspec,然后意识到需要修改默认的
as_json
方法来执行此转换:

expect(response_json).to eq(
  {
    'created_at'    => user.created_at.as_json,
    'updated_at'    => user.updated_at.as_json,
    'user_id'       => user.user_id,
    'status_id'     => user.status_id
  }
)
然后,我创建了
/config/initializers/unix_timestamps.rb
,它成功了:

class ActiveSupport::TimeWithZone
  def as_json
    self.to_time.to_i
  end
end

欢迎来到堆栈溢出。当您请求代码方面的帮助时,您需要向我们展示您的尝试。使用您的代码,我们可以直接解决不起作用的问题。如果没有它,最坏的情况下,您似乎是在要求我们为您编写代码,而最坏的情况下,我们只能编写与您的代码无关的代码,而您必须将这些代码固定在适当的位置。另外,请避免将
改写为
。如果将来,另一个开发人员要求您返回罗马数字,会发生什么情况?您将只有一个方法和多个表示。编写一个将对象作为输入的序列化程序对象,并使用序列化程序转换所需的内容。
class ActiveSupport::TimeWithZone
  def as_json
    self.to_time.to_i
  end
end