【问题标题】:Rails multiple radio buttonsRails 多个单选按钮
【发布时间】:2018-10-05 09:28:00
【问题描述】:

我有一个名为items 的表和三个布尔列fixed_amount, no_price, per_hour

如何将上述三列中的radio buttons 添加到表单中,以便在选择其中一列时提交为真,对其余未选择的列提交为假?我希望单选按钮能够从一个切换到另一个,而不是选择所有三个。

目前我正在尝试类似以下的方法,但没有任何运气:

<%= form.radio_button :no_price, '1', checked: true %>
<%= form.radio_button :fixed_amount, '1' %>
<%= form.radio_button :per_hour, '1' %>

【问题讨论】:

  • 我会使用枚举而不是单独的列,这样更容易,逻辑上更正确:例如enum pricing_option: { no_price: 0, fixed_amount: 1, per_hour: 2 } 然后在视图中:&lt;%= collection_radio_buttons(:foo, :pricing_option, Foo.pricing_options, :first, :first)%&gt;
  • 谢谢@Said Kaldybaev。这很好用!

标签: ruby-on-rails


【解决方案1】:

我会使用枚举而不是单独的列,这样更容易且逻辑上更正确:例如

enum pricing_option: { no_price: 0, fixed_amount: 1, per_hour: 2 }

在视图中:

&lt;%= collection_radio_buttons(:foo, :pricing_option, Foo.pricing_options, :first, :first)%&gt;

【讨论】:

    【解决方案2】:

    要使单选按钮相互取消切换,它们需要具有相同的名称。类似的东西

    <%= radio_button_tag :price_option, 'no_price', checked: model.no_price? %>
    <%= radio_button_tag :price_option, 'fixed_amount', checked: model.fixed_amount? %>
    ...
    

    然后您将在params[:price_option] 中收到所选选项,并相应地设置您的模型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-20
      • 2019-10-04
      • 1970-01-01
      • 2011-03-12
      • 1970-01-01
      • 1970-01-01
      • 2019-09-23
      相关资源
      最近更新 更多