ActiveAdmin — Показывать список флажков для вложенной формы вместо формы для добавления элементов

#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #activeadmin

#ruby-on-rails #ruby-on-rails-3 #ruby-on-rails-3.1 #activeadmin

Вопрос:

У меня есть вложенная форма categories для stores ресурса. Они имеют отношение has_and_belongs_to_many.

Когда я создаю вложенную форму, я получаю следующее в форме stores:

введите описание изображения здесь

Но что я действительно хочу, так это контрольный список, подобный этому:

введите описание изображения здесь

Есть идеи?

Ответ №1:

Оказывается, что после создания этих отношений между моделями мне не нужно выполнять f.has_many цикл в ресурсе activeadmin. Вместо этого мне просто нужно было следующее, чтобы заставить это работать:

 f.input :categories, :as => :check_boxes
  

Это автоматически выберет категории и проверит те, которые установлены по умолчанию (а также обработает любые изменения, внесенные в нее).

Комментарии:

1. Возможно, вам потребуется добавить :category_ids в attr_accesible модель.

2. Теперь все это может обрабатываться по-другому в Rails 4

3. В Rails 4 необходимо включить permit_params category_ids: [] в ActiveAdmin ресурс.

4. по умолчанию используется имя для отображения в виде флажка, но я хочу ввести другое имя поля вместо name как я могу это сделать? Если я добавлю туда опцию collection .. при повторном редактировании мне нужно выполнить код для автоматического выбора сохраненных. Кто-нибудь может сказать мне, как это сделать?

5. Извините, я только что исправил, используя опцию member_label в formtastic