我目前正在从 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/