如何将哈希打印到Rails视图?

chi*_*ikh 10 ruby hash json ruby-on-rails pretty-print

我有类似的东西:

{"a":"1","b":"2","c":"3","asefw":"dfsef"}
Run Code Online (Sandbox Code Playgroud)

我想在视图中打印出来.最好的方法是什么?

我尝试将其解析为JSON对象并使用JSON.stringify,但它似乎搞乱了缩进.

有什么建议?我不介意JavaScript解决方案.

the*_*Man 17

怎么样:

require 'json'

hash = JSON['{"a":"1","b":"2","c":"3","asefw":"dfsef"}']
puts JSON.pretty_generate(hash)
Run Code Online (Sandbox Code Playgroud)

哪个输出:

{
  "a": "1",
  "b": "2",
  "c": "3",
  "asefw": "dfsef"
}
Run Code Online (Sandbox Code Playgroud)

JSON.pretty_generate在实际生成要发送到浏览器的JSON时,它更像是一个调试工具.由于添加了空白,"漂亮"方面也意味着"膨胀"和"慢",但它有助于诊断和理解结构中的内容,因此它可以很好地满足您的需求.

要记住的一件事是,HTML在浏览器呈现时会丢失空格,因此空格会消失.为了避免这种情况,您必须将JSON输出包装在<pre>块中以保留空白和换行符.这样的事情应该有效:

<pre>
{
  "a": "1",
  "b": "2",
  "c": "3",
  "asefw": "dfsef"
}
</pre>
Run Code Online (Sandbox Code Playgroud)


小智 5

irb(main)> puts queried_object.pretty_inspect
Run Code Online (Sandbox Code Playgroud)

PrettyPrint,因此可能需要require 'pp'首先使其工作。

这也适用于例如Rails.logger输出。