Rails,json.erb是如何工作的?

时间:2013-09-03 03:17:50

标签: ruby-on-rails json

案例非常简单,我只想格式化json结果:

<%= @cal_dvp_status.to_a.map {|k| [Domain.find(k[0]).name,k[1][0],k[1][1],k[1][2],k[1][3]] } %>

@cal_dvp_status是一种哈希类型,所以我将它传递给to_a。我需要第一列应该是域名,其他列号是数字类型。但我不知道为什么json无法正常工作。但是,如果我只是插入数字类型的k [0],它就可以工作。

<%= @cal_dvp_status.to_a.map {|k| [k[0],k[1][0],k[1][1],k[1][2],k[1][3]] } %>

我不知道为什么代码现在不能正常工作。

1 个答案:

答案 0 :(得分:3)

json.erb基本上是原始的json响应,但有些部分在ruby中进行了评估。例如,这是一个有效的json.erb,它生成有效的json:

{ "status" : "success!" }

这是一个生成有效json的有效json.erb:

{ "status" : "<%="success"%>" }

就是这样。

如果你正在编写复杂的jsons,你很可能想要使用jbuilder或其他gem。 否则,#to_json实例中的方便方法Hash将返回该表示的json字符串。例如,这是一个有效的json.erb:

<%= { :status => "success" }.to_json %>

现在您可以看到哪种编程逻辑更适合您。