2016-02-11 45 views
0

這是我在CoffeeScript中正在做:如何將JavaScript/Coffeescript整數數組傳遞給我的Rails應用程序?

good_docs = [] 
    $('#documents_yes a').each (index) -> 
    good_docs.push parseInt($(@).data('id')) 

$('.hidden-docs').val(good_docs) #this is a hidden field 

的問題是,該數組被傳遞給我的Rails應用程序爲["1, 2, 3"],但我需要它在去爲[1, 2, 3]

我該怎麼做?我認爲parseInt調用會處理它。

+1

'parseInt'正在做你想象中的事情,但是你在HTML輸入字段中存儲數組。這會將您的數據串聯起來。我建議使用具有multiple屬性的'select'輸入,並修改它。看看這個問題的一點啓示:http://stackoverflow.com/questions/16582901/javascript-jquery-set-values-selection-in-a-multiple-select – Brennan

+0

有什麼特別的原因,你沒有使用一堆''將數組傳遞給Rails?這會給你一個實際的數組裏面的'params'在Rails中。 –

+0

@ muistooshort - 'good_docs'的數量是可變的。我認爲有一個領域可以讓他們更容易,而不是動態建立自定義數量的領域。當然,它並沒有變得更容易.... :) – croceldon

回答

2

你不能直接。 Javascript就像JSON一樣對數組進行stringyfing。在我看來,更容易的途徑就是抓住該字符串並將其轉換成在導軌上側陣列,喜歡的東西:

$('.hidden-docs').val(good_docs.join()) 

,讓你的隱藏字段「1,2,3」。現在,拆分和轉換爲數字的Rails:

​​

,將讓你:[1, 2, 3]

-1

嘗試使用控制器上的eval。

eval(params[:hidden_docs]) 
相關問題