【发布时间】:2015-06-04 08:37:24
【问题描述】:
我们正在将 json 渲染为 ERB 中的数据属性。例如:
location.html.erb
<div data-location="<%= render 'location_json' %>">
location_json.erb
<%= @location.to_json(
only: [:id, :name, :lat, :lng],
method: [:display_name]) %>
呈现的 html 看起来像:
<div data-location="{"id":16,"lat":"35.688195","lng":"-82.564652","name":"Mountain"}">
但我希望它更具可读性,例如:
<div data-location='{"id":16, "lat":35.688195, "lng":-82.564652, "name":"Mountain"}'>
有没有办法告诉 ERB 或 to_json 用单引号而不是转义双引号来呈现?
是否可以将可读的 json 呈现为 HTML 数据属性。通过可读性,我的意思是最少的转义。
【问题讨论】:
-
您需要
escape_javascript和raw的某种组合。 -
对数据属性值使用单引号的问题是json不会转义单引号,所以这会中断:
标签: ruby-on-rails json