【问题标题】:Rails - Default selected radiobutton in SimpleForm :collectionRails - 简单表单中默认选择的单选按钮:collection
【发布时间】:2024-04-19 11:55:02
【问题描述】:

SimpleForm 中的单选按钮有点问题。

当我使用时

= f.association :manufactureType, :collection => ManufactureType.all, :as => :radio

Rails 只生成几个单选按钮,但没有一个被选中。 我希望默认选择第一个单选按钮。我该怎么做呢?

谢谢

【问题讨论】:

  • 好的。我找到了这个问题的答案。只需在行尾添加 :checked => 1 (value) 即可:)

标签: ruby-on-rails ruby-on-rails-3 simple-form


【解决方案1】:

如果您将制造商类型传递到视图中,您可以执行以下操作:

:checked => @manufacture_types[0]

或者

:checked => ManufactureType.first

【讨论】:

  • 如果任何表单字段无效并重新呈现,这将重置按钮选择。我不知道这是否是最好的方法,但我通过在我的new 操作中设置属性解决了这个问题,所以@manufacturer = Manufacturer.new (manufacturer_type_id: 0)
【解决方案2】:

我的示例稍微复杂一些,因为没有可供参考的集合或模型,所以其他答案都对我不起作用。

= f.input :attending, as: :radio_buttons, :collection => [ ['Yes', true], ['No', false] ], :checked => ['Yes', true]

【讨论】:

    【解决方案3】:

    根据 op 的评论,添加此参数对我有用:

    :checked => 1
    

    【讨论】:

    • 这对我有用,但检查的答案没有。
    【解决方案4】:

    这是我的代码的摘录:

    = f.input :body_format,
      collection: [['markdown', 'Markdown']],
      label_method: :last,
      value_method: :first,
      as: :radio_buttons,
      checked: 'markdown', # THIS
      required: true
    

    【讨论】:

      最近更新 更多