Rails 3如何呈现.json.erb文件

时间:2013-02-15 16:35:21

标签: ruby-on-rails-3

我正在努力将一个相当大的项目迁移到Rails 3。

这是我的控制器动作:

def recent
  @account = Account.find(session[:account_id])
  render :layout => false
end

这是我的recent.json.erb文件

formatted_account = 
{
  :code = 1,
  :id = @account.id,
  :prefix = 2
}   
formatted_account.to_json()

我正在使用jQuery.getJSON来获取这些数据,当我得到响应时,这就是我得到的:

[{"code":1,"id":"1 "prefix":2}]

而不是

[{code:1, id:1, prefix:2}]

我必须在其他一些代码中使用safe_html来解决这样的转义问题,但在这种情况下,我无法弄清楚如何在不删除.json.rb文件和渲染json对象的情况下解决合适的方式。

2 个答案:

答案 0 :(得分:1)

html_safe做了诀窍:

formatted_account = 
{
  :code = 1,
  :id = @account.id,
  :prefix = 2
}   
formatted_account.to_json.html_safe

答案 1 :(得分:0)

如果你想从模板中构建json,你需要使用某种类型的构建器,因为ERB不会真正削减它。

JBuilder在一个新的Rails 3.2 Gemfile中被注释掉了。没有自己使用它,但它看起来很干净的DSL。在JBuilder github页面的README底部还有一个链接列表。

RABL是另一种构建JSON的工具,也支持多种其他格式。

JBuilder
RABL