Rails单选按钮参数是字符串而不是哈希

时间:2019-01-03 21:23:30

标签: ruby-on-rails ruby-on-rails-5 html-form

表格:

<%= form_for :computer do |f| %>
  <%= f.radio_button :state, value: 'on' %>
  <%= f.radio_button :state, value: 'off' %>
<% end %>

输出:

params[:computer][:state]
{:value=>"on"}

params[:computer][:state].class
String

params[:computer][:state][:value]
No implicit conversion of string into integer

params[:computer][:state]['value']
value

不,任何地方都没有.to_s! :)

this question,但自2011年以来一直未得到解答,它用于不同版本的rails。

1 个答案:

答案 0 :(得分:0)

在您的情况下,radio_button的正确用法如下:

f.radio_button :state, 'on'

第二个参数是被选择时要传递的值,您在那里不需要键/值对value: 'on'

最终将映射params[:computer][:state]中的值