【问题标题】:How to pass all values of radio button to controller in Formtastic form如何以 Formtastic 形式将单选按钮的所有值传递给控制器
【发布时间】:2022-02-03 02:39:46
【问题描述】:

所以我面临的一个问题是在按下提交按钮时将所有复选框值发送到控制器

索引:

= semantic_form_for :account do |form|
  = render form, form: form
  = form.actions do
    = form.action :submit

表格:

- current_user.organizations.each do |organization|
  - accounts = organization.accounts
    %label
      = organization.name
        - accounts.each do |account|
          = form.fields_for organization.id.to_s, account do |f|
            = f.hidden_field :id
            = f.radio_button :active, 1, checked: account.active
            = f.label account.name

目前仅通过检查的数据:假设我们确实有 2 个具有多个帐户的组织,并且您确实检查了这两个组织的单选按钮,在我的情况下,将发送到控制器的参数将仅是检查的参数,例如:

Parameters: {"utf8"=>"✓", "authenticity_token"=>"...", "account"=>{"organization.id"=>{"id"=>"account.id", "active"=>"1"}, "5"=>{"id"=>"account.id", "active"=>"1"}}, "commit"=>"Submit"}

但我希望将所有单选按钮都输入参数,而不仅仅是单击的按钮,所以最后,参数将包含一个完整列表,然后我可以在控制器中使用它们进行操作

【问题讨论】:

    标签: ruby-on-rails ruby jruby


    【解决方案1】:

    你不能。浏览器永远不会发送任何未选中的按钮(无论是单选按钮还是复选框),只会发送选中的按钮。

    您可以做的是使用复选框。 Rails 会为您添加一个值为“0”的隐藏字段,只有在未选中该复选框时您才会收到该字段。

    https://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-check_box

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-11-30
      • 2014-03-26
      • 2019-07-06
      • 2021-08-16
      • 2019-03-24
      • 2014-04-08
      • 2016-08-10
      • 2020-09-02
      相关资源
      最近更新 更多