2016-11-21 28 views
0

在我現有的Rails應用程序ruby中,我有一個JavaScript對象(哈希)在我的一個視圖文件中。在提交表單時需要將哈希提交回控制器。我已經使用JSON.stringify(hash_name)方法將散列轉換爲JSON。但它會產生一個字符串,我可以得到在我的控制器中看起來像散列的字符串。我的目的不是那樣。我需要在控制器中取消引用哈希值,以便將解引用的值保存到數據庫中。JavaScript對象轉換爲紅寶石散列

我的哈希看起來像當我在打印控制器中以下內容:

{"Bearing":[["Jeekay",0],["Ecodrive",0]],"Civil":[["Nirlon",0],["SKF",0]],"Compressor":[["Jeekay",0],["Ecodrive",0],["SKF",0]]} 

它應該是這樣的,但不是字符串。

我在我看來有一個隱藏的領域。我把散列到隱藏字段的值並提交形式

$("#javascript_data").val(JSON.stringify(ultimate_hash)); 

在我的控制,我得到的數據是:

check_data=params[:javascript_data] 

但check_data是一個字符串。

但是由於它的字符串,我的目的沒有解決。請通過提供一些關於如何將JavaScript哈希傳遞給控制器​​的建議來幫助我。

在此先感謝!

回答

2

你需要解析JSON來獲得散列。在這裏:

str = '{"Bearing":[["Jeekay",0],["Ecodrive",0]],"Civil":[["Nirlon",0],["SKF",0]],"Compressor":[["Jeekay",0],["Ecodrive",0],["SKF",0]]}' 
JSON.parse str 
# => {"Bearing"=>[["Jeekay", 0], ["Ecodrive", 0]], "Civil"=>[["Nirlon", 0], ["SKF", 0]], "Compressor"=>[["Jeekay", 0], ["Ecodrive", 0], ["SKF", 0]]} 

或按你方例如,簡單地說:

check_data = JSON.parse(params[:javascript_data]) 
+0

'JSON :: parse'?不是很常規的方式來調用Ruby中的方法;) –

+0

@AndreyDeineko編輯爲更好的常規方式:) – shivam

+0

@ shivam ,,非常感謝bro!......它的工作正常。 – Abhradip