私の ActiveAdmin モデルには、削除されたレコードを表示するカスタム スコープと、特定の列でレコードを検索するためのいくつかのフィルターがあります。
フィルターを個別に使用するか、組み合わせて使用すると、期待どおりに機能します。
スコープの使用は期待どおりに機能します。
問題は、スコープを使用するとすべてのフィルターが上書きされ、スコープを選択した後に追加されたフィルターが何も実行されないことです。
ここで何かアイデアはありますか?私が望むのは、特定のスコープを表示し、そのスコープ内で結果をフィルタリングできるようにすることです。
ActiveAdmin.register Example do
scope :deleted do |example|
Example.only_deleted
end
scope :all do |example|
Example.with_deleted
end
filter :title
filter :description
index do
column :title
column :description
end
end
[アップデート]
これが私が行った解決策です。モデルに with_deleted スコープを設定し、削除された結果を表示/非表示にするためのフィルターを側に含めます。最初に削除された結果も表示されるため理想的ではありませんが、少なくともすべてのフィルターを一緒に使用できます。
ActiveAdmin.register Example.with_deleted do
filter :title
filter :description
filter :deleted, :as => :select, :collection => {:true => nil, :false => false }
index do
column :title
column :description
end
end