我正在使用ActiveAdmin,并且尝试使用自己的作用域来设置过滤器。这是模型样本:

class MyModel < ActiveRecord::Base
  scope :by_nationality, lambda { |nationality| OtherModel.where(nationality: nationality).map(&:my_model) }
end

这是我设置过滤器的方法:
ActiveAdmin.register MyModel do
  filter :nationality
end

不幸的是,这是行不通的:筛选器框不包含任何国籍筛选器。
有谁知道我应该如何设置这个过滤器,甚至可以呢?

谢谢 !

最佳答案

首先,您需要将OtherModel与MyModel关联

class MyModel < ActiveRecord::Base
   belongs_to :other_model
end

您不需要范围,过滤器可以在关联的模型上使用
ActiveAdmin.register MyModel do
  filter :other_model_nationality
end

10-02 21:22