Rails: JSON.pretty_generate(obj) in the controller does not produce pretty output
对于Rails控制器中的ActiveRecord对象,我需要一个相当好的JSON输出。基于jpatokal对这个问题的回答,我尝试了以下方法:
1 2 3 | respond_to do |format| format.json { render :json => JSON.pretty_generate(record) } end |
在哪里?
1 | record |
号
是ActiveRecord对象。它不会产生一个经过美化的输出。但是,当我尝试使用相同的代码输出哈希时,即,
1 2 3 | respond_to do |format| format.json { render :json => JSON.pretty_generate({"abc" =>"1","def" =>"2"}) } end |
它确实会生成一个经过预处理的输出(因此,漂亮的生成工作正常,我的浏览器也工作正常)。
如何使用pretty_generate生成ActiveRecord对象的漂亮输出?
要从活动记录对象获得JSON的漂亮输出,您必须首先以JSON的形式请求该对象。
1 | record.as_json |
上面的代码将为您实现这一点,从控制器中呈现漂亮的JSON的捷径是:
1 | render json: JSON.pretty_generate(record.as_json) |
号
这也解决了您可以尝试将ar对象转换为
编辑:我忘了提一下,这一切都可以在