我有一個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