我想确保我的数组在视图中保持这样:
["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"]
而不是转换为:
["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"]
我的erb文件中的代码用于highcharts图:
categories: <%= @days %>,
在Rails中,我使用了raw
方法:
遵循Messy " returned from Rails 3 controller to view和Use ruby array for a javascript array in erb. Escaping quotes
的建议然而,加载所有ActionView以使用一种方法似乎打败了Sinatra的对象。
有更好的方法吗?
答案 0 :(得分:2)
我不知道为什么你现在在数组上有一些转义,但这就是我在ERB视图中的内容:
<% array = ["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"] %>
<p><%= array.inspect %></p>
<p><%= array.inspect.gsub(/"/, '\"') %></p>
这是输出:
[“Tue”,“Wed”,“Thu”,“Fri”,“Sat”,“Sun”,“Mon”,“Tue”]
[\“Tue \”,\“Wed \”,\“Thu \”,\“Fri \”,\“Sat \”,\“Sun \”,\“Mon \”, \ “星期二\”]
但真正的问题是“如何从Sinatra获取数据到javascript函数?”
class App < Sinatra::Base
get "/array", :provides => :json do
content_type :json
["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"].to_json
end
end
然后通过coffeescript编译的一些jQuery(或者你喜欢哪个库)调用它,当然:)
$.getJSON "/array", (res) ->
# do something with the result
这意味着: