使用JSON字符串作为html属性来形成帮助器

时间:2011-06-14 13:00:38

标签: ruby-on-rails-3

我想在其数据属性中显示一个带有一些JSON的文本框。这是我做的事情

<%= f.text_field :time, "data-options" => '{"mode": "timebox"}' %>

但它呈现以下HTML

<input data-options="{&quot;mode&quot;: &quot;timebox&quot;}" ...

我想要实现的是

<input data-options='{"mode": "timebox"}' ...

我希望它将属性括在单引号中而不转义内容。我可以用text_field助手吗?

1 个答案:

答案 0 :(得分:1)

如果您确定JSON数据始终是安全的,请使用html_saferaw

#html_safe
<%= f.text_field :time, "data-options" => '{"mode": "timebox"}'.html_safe %>

#raw
<%= f.text_field :time, "data-options" => raw('{"mode": "timebox"}') %>

聚苯乙烯。请注意,我使用单引号而不是modetimebox的双引号。 (因为出于某种原因,当在HTML中呈现时,Rails总是在属性值周围添加双引号。)