Как выбрать все записи из ассоциации в активном админе - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть несколько моделей, подобных этой:

class Sponsored < ActiveRecord::Base
  has_many  :sponsored_sports
  has_many  :sports,
            through: :sponsored_sports,
            class_name: 'Sport',
            source: 'sport'
  ...
end

это спортивная модель:

class Sport < ActiveRecord::Base
  has_many :sponsored_sports
  ...
end

В настоящее время на спонсируемой активной странице администратора я создаю спонсируемый спорт по одной этойкод:

form do |f|
    f.inputs "Details" do
      ...
      f.has_many :sponsored_sports, heading: '', allow_destroy: true do |e|
        e.input :sport_id, as: :select, :collection => Sport.order('rank'), :label_method => :name, :value_method => :name, :include_blank => false
      end
    end
    f.actions
  end

Но теперь я просто хочу добавить дополнительную опцию для пользователей, чтобы выбрать все виды спорта сразу, установив флажок, например: select all.Так как я могу сделать это в активном админе?Заранее спасибо.

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете добавить кнопку или ссылку в форму f.has_many и создать javascript, чтобы при щелчке по этой ссылке вы могли программно добавить все значения в выборку.

Или вы можете отправить новый параметр внапример, select_all и создайте ассоциативную связь при обновлении или создании модели в секции контроллера active_admin:

controller do
    def update
        super
        *check the params and make the association*
    end
end
...