我有一個Ruby腳本,將散列轉換爲json並將其寫入文件。我使用to_json
方法。爲什麼Rails to_json給出的結果與Ruby to_json不同?
在該文件中,我得到以下結果:
{"name":"Bob","age":42}
我一個模塊中複製的lib
目錄我的Rails應用程序內的這個劇本,現在,當我把它從一個控制器,I得到寫入文件以下結果:
{"name":"Bob","age":"42"}
注意42
現在是"42"
。這是爲什麼?我如何強制Rails將它寫爲42
而不是"42"
?
這會引起我的問題,因爲我的應用程序正在處理該文件,並在將其轉換回散列時,int現在是一個字符串。
編輯
似乎沒有安裝json
寶石。這很奇怪,因爲我的Ruby腳本和Rails版本都可以調用to_json
。 gem list
也在安裝的寶石列表中顯示json 1.8.3
。儘管如此,因爲我運行了gem install json
,一切都按預期工作。整數作爲整數進行json化。
任何人都可以解釋爲什麼在我的Ruby腳本中的to_json
和require 'json'
正在工作,即使我不能從irb?
當然你的問題是有趣的。但你的解決方案很簡單。只需用is_a測試整數或字符串的值?然後根據您的需求轉換爲適當的。然後,免於打破軟件的問題,所有時間都可以找到這種奇怪行爲的原因。去我自己的一些測試。 –
@EddeAlmeida是的,我得到的解決方法很簡單(雖然我沒有訪問處理部分),我仍然想知道爲什麼我的腳本從Ruby命令行執行時產生一定的輸出,從Rails上下文。 – ilovebigmacs
當然@ ilovebigmacs。這值得研究。 –