【发布时间】:2011-10-12 11:07:54
【问题描述】:
我有一个 Ruby on Rails 应用程序。单击按钮时,我有一些 AJAX 调用应该返回 JSON。
以下是相关的代码行:
文件“index.js.erb”:
var myJson = <%= chart_data %>;
文件“parameter_helper.rb”:
module ParameterHelper
def chart_data
valRet1 = {
:name => "Total Traffic",
:data => [
['Sep 9, 1970', 0],
['Sep 14, 1970', 0.94],
['Sep 20, 1970', 0.46]
]
}
valRet2 = [1, 2]
return valRet1
end
end
问题是当我从 chart_data 返回 valRet2 时,我在 index.js.erb 文件中获得了所需的数组。但是如果我尝试返回 valRet1,我会得到错误。
我玩过 ActiveSupport::JSON.encode、jQuery.parseJSON、将我的 JSON 对象转换为字符串和转义引号等。似乎没有任何效果。
以下导致错误:
return '[["Sep 9, 1970", 0],
["Sep 14, 1970", 0.94],
["Sep 20, 1970", 0.46]]'
以下也导致了错误:
result = [['Sep 9, 1970', 0],
['Sep 14, 1970', 0.94],
['Sep 20, 1970', 0.46]]
return '"' + ActiveSupport::JSON.encode(result) + '"'
以下正确返回:
return "[['Sep 9, 1970', 0],
['Sep 14, 1970', 0.94],
['Sep 20, 1970', 0.46]]"
数组(最好是散列)需要动态创建(从数据库中获取值),因此不能像上面正确返回数据的情况那样是文字。
我们将不胜感激。
环境:
OS: Windows 7
Rails: 3.1.0
Ruby: 1.9.2p290 (2011-07-09) [i386-mingw32]
问候,
伊姆蒂亚兹
【问题讨论】:
标签: javascript ruby-on-rails ruby json helper