我正在使用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