2012-11-30 49 views
4

沒有人見過這陣錯誤? 我有一個幫助方法返回一個數組。在我的筆記本電腦的發展模式下,它返回一個預期的格式排列:軌陣列輸出格式怪在生產

var fire = 
[[1349083353000, 8.860000000000582], [1349085153000, 19.779999999999745], 
[1349086953000, 20.289999999999964], [1349088753000, 29.850000000000364], 
[1349090553000, 3.7999999999992724]]; 

但在生產相同的代碼返回一個怪陣格式:

var fire = 135175422800015.5135175602800020.0135175782800018.99135175962800012.33135176142800019.13135176322800029.55135176502800020.13135176682800077.34 

我試圖檢查在軌控制檯輸出機器和生產都會輸出相同的奇怪數組格式。我已經在生產的rails控制檯中創建了一個新的數組,並且按照預期的那樣工作,輸出正確的數組格式。

任何人看到古怪的這一點嗎?

Rails version:3.2.8 
Ruby Version:1.9.3p-125 
+2

似乎您試圖紅寶石數組轉換成JavaScript代碼?你能顯示代碼嗎? – Yanhao

+0

是的,我正在那樣做。我在我的視圖代碼是這樣的 <腳本類型= 「文本/ JavaScript的」> \t變種水域= <(%)= getWaterSamples.to_json%> \t VAR火災= <(%)= getFireSamples.to_json%> \t jQuery的(document).ready(function(){ \t \t initChart(fires,waters); \t}); getFireSamples是一個幫助程序,它只是從數據庫中提取數據並作爲紅寶石數組返回 – zeetao

回答

7

您可能正在開發Ruby 1.9並在Ruby 1.8上進行部署。處理數組的默認行爲是不同的。

在Ruby 1.8 array.to_s相當於array.join('')

在Ruby 1.9 array.to_s相當於array.inspect

如果你想同時在適當的行爲,而你使用JavaScript,你可能想使用array.to_json而不是呈現爲JSON。

+0

您是對的。這是必需的json。謝謝。我不明白爲什麼我的服務器運行在Ruby 1.8.7上。之前我曾懷疑過,在這兩個版本的rails控制檯中試驗我的代碼並看到奇怪的數組行爲後,情況就是這樣。我已經用rvm包裝包裹了我的獨角獸,並且無法在其他地方找到未定義的地方...... – zeetao