在视图上我有这个
<%= hidden_field :hold, i, value: true %>
控制器上的我意识到两者:hold和value都是字符串。
params[:hold]['0'] == 'true' => true
params[:hold][0] => nil
在视图和控制器之间进行类型转换是否有最佳做法?
答案 0 :(得分:1)
我不知道我是否做得对。但是,params就像一个哈希。你从params得到的一切都是字符串。所以params应该是这样的:
params = {'hold': {'0': 'true'}}
你可以通过字符串获得'true',如下所示:
params['hold']['0']
或者您可以使用符号来完成此操作:
params[:hold][:'0']
因为:0在语法上不正确,所以必须使用:'0'来创建符号。
这实际上取决于个人偏好使用哪个。我会这样做:
params[:hold]['0']