ActiveAdmin。始终在索引表上方显示顶部过滤器

时间:2013-02-04 00:57:33

标签: ruby-on-rails activeadmin

在索引页面上如果使用旁边过滤器的搜索结果不为空我在预定义范围的索引表上面有顶部过滤器但是如果没有任何结果,这行过滤器就会消失......

但我在所有情况下都需要它,并且搜索结果的正确数量为top filter

希望问题很清楚=)

1 个答案:

答案 0 :(得分:2)

执行此操作的一种方法是修补“范围”构建器类。您可以通过向Rails项目添加初始化文件来轻松完成此操作:

<强>配置/初始化/ activeadmin_scope_patch.rb

module ActiveAdmin
  module Views
    class Scopes < ActiveAdmin::Component
      def build(scopes, options = {})
        scopes.each do |scope|
          build_scope(scope, options) if call_method_or_proc_on(self, scope.display_if_block)
        end
      end
    end
  end
end

这是有效的,因为默认渲染器会检查结果集是否为空,如果是,则会使进程短路。通过删除该检查,渲染器显示所有具有0个项目的范围,因为没有结果。