在 ActiveAdmin 过滤器中使用 ActiveRecord 范围

Use ActiveRecord scope in ActiveAdmin filter

在我的 rails 项目中,我有模型:

class Panel < ActiveRecord::Base
  has_many :surveys

  scope :by_survey_name, ->(survey_name) {
    joins(:surveys).where('surveys.survey_name LIKE (?)', "%#{survey_name}%")
  }
end

问题是我如何在 activeadmin fiter 中使用这个范围?

添加到模型:

  def self.ransackable_scopes(_auth_object = nil)
    [:by_survey_name]
  end

然后在资源中:

  filter :by_survey_name, as: :string