如何美化 ActiveAdmin 的 json 输出?

Eva*_*oss 2 ruby json ruby-on-rails activeadmin

我有一个带有 json 字段的模型,我想美化该字段的输出。我该怎么做?

show do
  attributes_table do
    row :source_json do |model|
      model.source_json
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

当前字段如下所示:

  {"date"=>"2018-12-17", "value"=>"sample"}
Run Code Online (Sandbox Code Playgroud)

我想要这样的东西:

  {
     "date"=>"2018-12-17",
     "value"=>"sample"
  }
Run Code Online (Sandbox Code Playgroud)

spi*_*ann 7

我会用这样的东西:

show do
  attributes_table do
    row :source_json do |model|
      JSON.pretty_generate(JSON.parse(model.source_json))
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

JSON.parse如果您可以选择获取sourceRuby 哈希而不是 JSON 字符串,则您可能不需要调用。

您可能希望将输出包装到一个<pre>HTML 标签中——就像 Evan Ross 建议的那样——以提高可读性:

show do
  attributes_table do
    row :source_json do |model|
      tag.pre JSON.pretty_generate(JSON.parse(model.source_json))
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!它在 `pre` 标签内工作正常:`pre JSON.pretty_generate(JSON.parse(model.source_json))` (3认同)