“范围”查询的活动管理过滤器

时间:2014-07-04 16:06:15

标签: ruby-on-rails ruby activeadmin rails-activerecord

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

不幸的是,这不起作用:过滤框不包含任何国籍过滤器。 有谁知道我应该如何设置这个过滤器,如果它甚至可能?

谢谢!

1 个答案:

答案 0 :(得分:1)

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

class MyModel < ActiveRecord::Base
   belongs_to :other_model
end

您不需要范围,过滤器适用于相关模型

ActiveAdmin.register MyModel do
  filter :other_model_nationality
end