我有一个Ruby on Rails应用程序。点击一个按钮,我有一些应该返回JSON的AJAX调用。从红宝石辅助函数返回JSON到javascript
这里是代码中的相关行:
文件 “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]
问候,
伊姆蒂亚兹
valRet1.to_json不起作用。 – imtiaz
哦,加上'宝石“json''你'Gemfile'运行'束install' –
仍然没有工作。我也尝试过ActiveSupport :: JSON.encode(valRet1)。另外,valRet1是一个散列。 – imtiaz