collection_check_boxesで生成したチェックボックス群で一つでもチェックが入ってなかったらエラーにする方法を紹介します。
<% #erbで %>
<%= form.collection_check_boxes :my_check_boxies, ..., include_hidden: false %>
# モデルで
validates :my_check_boxies, presence: true
collection_check_boxesはデフォルトでチェックの入ってない時、空文字を送信します。何もチェックしないで送ると[""]
が送信されてきます。これを必須チェックするには独自バリデーションを作らないと無理そうです(もしできるなら教えてください)。
そこで、チェックが入っていない時、何も送られてこないようにinclude_hidden: false
で設定します。そうするとチェックを入れてない時何も送られてこないのでpresence
でチェックが可能です。
私の検索方法が悪かったのか、意外に見つからなかったので共有します。