如何从活动管理员中的关联中选择所有记录

时间:2018-09-29 09:42:22

标签: ruby-on-rails-4 associations activeadmin

我有一些这样的模型:

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 :(得分:0)

您可以在f.has_many表单中添加按钮或链接并创建一个javascript,因此当单击此链接时,可以以编程方式将所有值添加到选择中。

或者您可以将新参数发送到select_all之类的表单中,并在active_admin控制器部分中更新或创建模型时进行关联:

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