0

我想确保我的数组在视图中保持这样:

["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"]

而不是转换为:

["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"]

我的 erb 文件中的代码用于高图表:

categories: <%= @days %>,

在 Rails 中,我使用了以下raw方法:

在遵循从 Rails 3 控制器返回的 Messy 的建议后,查看使用 ruby​​ 数组作为 erb 中的 javascript 数组。转义引号

但是,加载所有 ActionView 以使用一种方法似乎会破坏 Sinatra 的对象。

有没有更好的办法?

4

1 回答 1

2

我不确定为什么你现在会在数组上转义,但这就是我在 ERB 视图中放置的内容:

<% array = ["Tue", "Wed", "Thu", "Fri", "Sat", "Sun", "Mon", "Tue"] %>

<p><%= array.inspect %></p>
<p><%= array.inspect.gsub(/"/, '\"') %></p>

这是输出:

[“周二”、“周三”、“周四”、“周五”、“周六”、“周日”、“周一”、“周二”]

[\"周二\"、\"周三\"、\"周四\"、\"周五\"、\"周六\"、\"周日\"、\"周一\"、\"周二\"]

但真正的问题是“如何从 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

意思是:

  • 你不必担心逃跑
  • jQuery 负责解析 JSON 响应,因此您只需使用一个对象
  • 更容易测试
  • 您已经设置了一个 API,其中有一个 Web 应用程序调用它(即 Sinatra 方式而不是 Rails 方式)
  • 你会做一些与其他人更相似的事情,这将使获得帮助更容易。
于 2012-12-26T05:32:43.973 回答