0

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

这是我的控制器操作:

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

这是我最近的.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 对象,我无法弄清楚如何解决。

4

2 回答 2

1

html_safe 成功了:

formatted_account = 
{
  :code = 1,
  :id = @account.id,
  :prefix = 2
}   
formatted_account.to_json.html_safe
于 2013-02-19T15:37:11.190 回答
0

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

JBuilder 在新的 Rails 3.2 Gemfile 中被注释掉了。我自己没有使用过它,但它似乎是经过深思熟虑的干净的 DSL。JBuilder github 页面上的 README 底部还有一个链接列表。

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

JBuilder
RABL

于 2013-02-15T21:37:14.683 回答