我有一个数组:
arr = ["foo", "bar"]
要在某些 Javascript 中使用此数据,我需要像这样使用 inspect
:
series: [
{
data: <%= arr.inspect %>
}
]
不幸的是,这会产生:
["foo", "bar"]
Javascript 无法读取。我已经尝试使用 HTMLEntities.new.decode
和 CGI.unescapeHTML
进行解码,但仍然得到编码的双引号。
有什么想法吗?
编辑:这是在使用 ERB 的 Rails 应用中。
最佳答案
您不想为此使用 inspect
,inspect
用于生成人类可读的输出以用于调试、日志记录等。如果您想将数据转储到 JavaScript 中,请使用 JSON:
data: <%=r arr.as_json %>
这会给你类似的东西:
data: ["foo","bar"]
所有内容都将被正确转义和编码以便在 JavaScript 中使用(因此在 ERB 中 r
代表 raw
)。
关于ruby-on-rails - ruby /rails : Decode HTML after #inspect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757917/