Rails 6:如何在 collection_check_boxes 中要求至少一个复选框

Posted

技术标签:

【中文标题】Rails 6:如何在 collection_check_boxes 中要求至少一个复选框【英文标题】:Rails 6: How to require at least one check box in collection_check_boxes 【发布时间】:2021-08-06 06:02:06 【问题描述】:

对于大多数 Rails 表单输入,您可以使用 required: true 来要求输入。 collection_check_boxes 是否有等价物?我试过了:

<%= f.collection_check_boxes :category_ids, Category.all, :id, :name, , required: true do |c| %>
    <%= c.check_box %>
    <%= c.label %>
<% end %>

这会将 required 放在每个单独的复选框上,这不是我想要的。有没有办法在没有控制器验证的情况下做到这一点?

【问题讨论】:

javascripthtml 中的 required 属性适用于单个元素。如果你想要更高级的验证逻辑,你需要自己实现。 【参考方案1】:

例如,您需要为需要列的类别构建一个动态列表,并在此基础上将 required: true 传递给特定的复选框。

categories_hash = [id: 1, name: 'Bananas', required: false, id: 2, name: 'Apples', required: true]

然后通过将c[:required] 传递给所需的复选框,它可能会像这样(我没有测试过)

<%= f.collection_check_boxes :category_ids, categories_hash.map |k| k[:name], :id, :name do |c| %>
  <%= c.check_box, required: c[:required] %>
  <%= c.label %>
<% end %>

【讨论】:

没有需要选中的特定复选框。我只关心至少选中一个框 @SaraTibbetts 这个答案可能会有所帮助***.com/questions/22626222/…

以上是关于Rails 6:如何在 collection_check_boxes 中要求至少一个复选框的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 6.0.3.3 中使用 jQuery?

我应该如何在 Rails 6 中重新启动 spring

如何在 Rails 6 的视图中使用 JQueryUI

如何在 Rails 6 和 webpacker 中使用 morris.js?

如何将 toastr-rails gem 添加到 Rails 6 项目?

如何在 Rails 6 中要求自定义 JS 文件