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 放在每个单独的复选框上,这不是我想要的。有没有办法在没有控制器验证的情况下做到这一点?
【问题讨论】:
javascript。 html 中的 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 和 webpacker 中使用 morris.js?