我将Ruby对象解析为JSON,将其呈现在js.erb文件中,然后将其打印到控制台(Chrome浏览器)。
在我的js.erb文件中,打印时:
console.log("<%= @search.attributes.to_json %>")
我明白了:
{"id":124,"period_start":null,"period_end":null,"user_id":null,"created_at":"2015-01-04T05:54:05.133Z","updated_at":"2015-01-04T05:54:05.133Z","onscreen_people_rank_lower":null,"onscreen_people_rank_upper":null,"incl_onscreen_people_unranked":null,"offscreen_people_rank_lower":null,"offscreen_people_rank_upper":null,"incl_offscreen_people_unranked":null}
这很难读。我想让JSON变得漂亮,这样我就可以更轻松地阅读它了。
在我的js.erb文件中,我试过这个:
console.log(eval("(" + "<%= @search.attributes.to_json %>" + ")"))
和此:
console.log( jQuery.parseJSON("<%= @search.attributes.to_json %>") )
和此:
console.log( "<%= JSON.pretty_generate(@search.attributes) %>" )
但没有工作 - 代码未被评估,也没有输出任何内容。我做错了什么?
答案 0 :(得分:1)
扩展Cba Bhusal的答案,这对我来说是最好的:
console.log("<%= j JSON.pretty_generate(@search.attributes).html_safe %>");
escape_javascript
需要转义引号,而JSON.pretty_generate
插入空格以使其更漂亮。 Chrome控制台中的输出如下所示:
{
"id": 138,
"user_id": null,
"created_at": "2015-01-04T15:57:23.110Z",
"updated_at": "2015-01-04T15:57:23.110Z"
#...
}
答案 1 :(得分:0)
非常简单,试试这个
console.log("<%= @search.attributes.to_json.html_safe %>")