2

サイドフィルターを使用した検索の結果が空でない場合、インデックスページで、インデックステーブルの上に定義済みのスコープを持つトップフィルターがありますが、結果がない場合、このフィルターの行は消えます...

しかし、検索結果の正しい数ですべての場合に必要ですトップフィルター

質問が十分に明確であることを願っています=)

4

1 に答える 1

2

これを行う 1 つの方法は、Scopes ビルダー クラスにモンキー パッチを適用することです。これは、Rails プロジェクトに初期化ファイルを追加することで簡単に実行できます。

config/initializers/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 のすべてのスコープを表示します。

于 2013-02-07T06:46:53.600 に答える