【问题标题】:Rails radio button param is a string instead of hashRails 单选按钮参数是字符串而不是哈希
【发布时间】:2019-05-30 11:56:12
【问题描述】:

表格:

<%= 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。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5 forms


    【解决方案1】:

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

    f.radio_button :state, 'on'
    

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

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

    【讨论】:

    • 天哪,wrong version!我猜随着岁月的流逝和页面的积累,对于像我这样的愚蠢的人来说,这将成为一个越来越大的问题。
    • 最好总是查看api.rubyonrails.org,在 URL 的末尾附加你正在使用的 Rails 版本,如v5.0.7/,在本例中为api.rubyonrails.org/v5.0.7,然后你' 将获得该版本的文档。在那里你可以看到你应该使用的语法。
    猜你喜欢
    • 2017-08-05
    • 2018-10-17
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 2020-04-05
    • 2019-03-01
    • 2021-11-19
    • 1970-01-01
    相关资源
    最近更新 更多