2013-09-26 45 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']