За прошедшие годы я сделал несколько форм с несколькими флажками и разные версии Rails.Rails никогда не предоставлял действительно чистого способа сделать это, но решение «отыграться», которое вы придумали, довольно хорошо, не так ли?Это одна строка, это явно, и пока список продуктов достаточно короткий, он будет работать адекватно.
Чтобы ответить на ваш конкретный вопрос, f.check_box
никогда не будет работать для этого.Это просто сокращение для check_box_tag, но ни одна из семантик не применяется.Если вы хотите использовать Rails нативно, я думаю, что единственная возможность - использовать вложенные атрибуты .Частично проблема заключается в том, что нет такого очевидного способа для такого типа вещей работать.Ядро Rails прошло много планирования и обратной связи, чтобы придумать вложенные атрибуты, как они существуют, и, хотя они кажутся немного тупыми, они довольно элегантно фиксируют наиболее распространенные варианты использования.Но вложенные атрибуты были введены в Rails 2.3, и, кроме того, они представят довольно много концептуальных накладных расходов для чего-то, что звучит так, как будто это не нуждается в сложности.
Есть также несколько плагинов, которые предоставляют помощников для этого,хотя я не использовал их в течение долгого времени (начиная с эры Rails 2).У меня сложилось впечатление, что они слишком излишни, если у вас нет многих форм, использующих этот шаблон.