2

我目前正在从 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"}
4

1 回答 1

4
 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 输出处理自定义节点,并且正在努力学习这一点!

如果您需要按特定顺序的属性,我会使用带节点的属性,因为属性似乎“浮动到创建的 json 对象的顶部”。

于 2012-11-05T19:05:16.940 回答