0
在视图我有这个rails如何转换post变量类型?
<%= hidden_field :hold, i, value: true %>
我意识到,这两个控制器上:保持和值都是字符串。
params[:hold]['0'] == 'true' => true
params[:hold][0] => nil
是否有在视图和控制器之间进行类型转换的最佳做法?
在视图我有这个rails如何转换post变量类型?
<%= hidden_field :hold, i, value: true %>
我意识到,这两个控制器上:保持和值都是字符串。
params[:hold]['0'] == 'true' => true
params[:hold][0] => nil
是否有在视图和控制器之间进行类型转换的最佳做法?
我不知道我是否正确。但是,params就像一个哈希。你从params得到的所有东西都是字符串。所以PARAMS应该是这样的:
params = {'hold': {'0': 'true'}}
你可以通过字符串 '真',是这样的:
params['hold']['0']
或者你可以用符号做到这一点,就像这样:
params[:hold][:'0']
由于:0在语法上不正确,因此必须使用:'0'来创建符号。
这实际上取决于个人喜好,以使用哪个。我会做这样的:
params[:hold]['0']
一个建议:如果你的'i'变量是一个整数索引和你在一个循环中创建的隐藏字段,那么也许它可能是更清晰和更容易使用,如果工作您将索引附加到单词中;例如:'<%= hidden_field:hold,“index#{i}”to_sym,value:true%>'。然后在你的控制器中,你可以简单地使用':index1'获取这个值。如果这更容易......否则下面的答案也是正确的。 –