2014-07-04 61 views
0

我我JS送這個給導軌:將JavaScript數組轉換爲哈希的Rails?

[{name: "Jon"}, {name: "Jane"}]

我想到的Rails/Ruby來它解釋成相同的結構,而是它把它轉換成一個像這樣的哈希:

{ "0" => {"name" => "Jon"}, "1" => {"name" => "Jane"} }

任何想法爲什麼會發生這種情況,或者如何預防它?

+0

在這種特殊情況下,在hash上調用'values'方法。 –

回答

0

你實際上並沒有發送[{name: "Jon"}, {name: "Jane"}],你發送的是"[{name: "Jon"}, {name: "Jane"}]",所以rails必須將它轉換成某種東西,否則你會用一些凌亂的正則表達式來獲得你想要的數據。所以導軌將它轉換爲HashWithIndifferentAccess Object給你。我非常懷疑你想攻擊rails內部,那麼爲什麼不直接用rails的方式解析你的代碼而不是強迫它成爲另一種格式呢?

0

這是一個正確的行爲。如果您有興趣將Array作爲參數發送,則必須使用some_field_name[]類型的字段,而不是javascript中的簡單「field_name」。

相關問題