2013-09-26 116 views
0

在視圖我有這個rails如何轉換post變量類型?

<%= hidden_field :hold, i, value: true %> 

我意識到,這兩個控制器上:保持和值都是字符串。

params[:hold]['0'] == 'true' => true 
params[:hold][0] => nil 

是否有在視圖和控制器之間進行類型轉換的最佳做法?

+0

一個建議:如果你的'i'變量是一個整數索引和你在一個循環中創建的隱藏字段,那麼也許它可能是更清晰和更容易使用,如果工作您將索引附加到單詞中;例如:'<%= hidden_​​field:hold,「index#{i}」to_sym,value:true%>'。然後在你的控制器中,你可以簡單地使用':index1'獲取這個值。如果這更容易......否則下面的答案也是正確的。 –

回答

1

我不知道我是否正確。但是,params就像一個哈希。你從params得到的所有東西都是字符串。所以PARAMS應該是這樣的:

params = {'hold': {'0': 'true'}} 

你可以通過字符串 '真',是這樣的:

params['hold']['0'] 

或者你可以用符號做到這一點,就像這樣:

params[:hold][:'0'] 

由於:0在語法上不正確,因此必須使用:'0'來創建符號。

這實際上取決於個人喜好,以使用哪個。我會做這樣的:

params[:hold]['0']