ruby-on-rails - RABL 将 ActiveRecord 时间戳或日期时间呈现为数字而不是字符串

标签 ruby-on-rails json sinatra rabl

我目前正在从 ActiveRecord 的 as_json 切换到 RABL 来生成 API。

as_json 已将模型中的时间戳渲染为 2012-09-16T22:14:11+00:00 格式的字符串。但是,当我切换到 RABL 时间戳时,时间戳开始呈现为纪元编号,如 1347926218.084763000 (请注意,这些日期来自两个不同的对象,不应相等)。有没有办法强制字符串格式?

我的 .rabl 模板非常简单:

object @person
attributes :id, :created_on, :name

我得到:

{"id":3,"created_on":1347926218.084763000,"name":"fred"}

最佳答案

 object @person
   node(:id){|person|(person.id)}
   node(:created_on){|person|(person.created_on.strftime(%d,%m,%Y)}
   node(:name){|person|(person.name)}
 end

或者尝试

 object @person
   attributes :id, :name
   node(:created_on){|person|(person.created_on.strftime(%d,%m,%Y)}
 end

您可以在许多网站上找到 .strftime() 的更多选项。它必须用于 :date 对象类型。您可以使用其选项自定义日期输出。我正在研究一些 json 输出的自定义节点,并且正在艰难地学习这一点!

如果您需要按某种顺序排列属性,我会使用带有节点的属性,因为属性似乎“ float 到创建的 json 对象的顶部”。

关于ruby-on-rails - RABL 将 ActiveRecord 时间戳或日期时间呈现为数字而不是字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12593535/

相关文章:

php - JSON_NUMERIC_CHECK 根本行不通

ruby-on-rails - 将小型 ruby​​ 应用程序放到网上的最佳方式是什么?

ruby-on-rails - 设计要求用户接受服务条款?

javascript - 如何将文件从 HTML5 拖放到 Rails 3 应用程序和回形针?

javascript - 在 D3 Javascript 中显示 .json map

ruby - 我将如何修改此 rake 任务以启动支持本地调试的瘦服务器?

ruby - wrk 在 Rack vs Sinatra 基准测试中显示奇怪的结果

ruby-on-rails - 由于 "404 Not Found"错误,sunspot_rails 无法索引

ruby-on-rails - Ruby On Rails I18n-错误的本地化。full_messages可在一个服务器上运行,但不能在另一台服务器上运行

java - Android:查看 - child 已经有 parent