アクティブな管理者でデフォルト値のフィルタを使用することは可能ですか?これは、管理ユーザーのデータを事前にロードする場合に役立ちます。 [:Q]空であるかのparams [:スコープ]空のいくつかのあなたはのparamsの場合、フィルタを設定する必要がある場合にActiveAdmin - デフォルト値のフィルタ
:
filter :country, :default=>'US'
アクティブな管理者でデフォルト値のフィルタを使用することは可能ですか?これは、管理ユーザーのデータを事前にロードする場合に役立ちます。 [:Q]空であるかのparams [:スコープ]空のいくつかのあなたはのparamsの場合、フィルタを設定する必要がある場合にActiveAdmin - デフォルト値のフィルタ
:
filter :country, :default=>'US'
あなたは
before_filter :only => [:index] do
if params['commit'].blank?
#country_contains or country_eq .. or depending of your filter type
params['q'] = {:country_eq => 'US'}
end
end
UPD before_filter定義することによって、それを行うことができます
ので、これは良い仕事かもしれません
before_filter :only => [:index] do
if params['commit'].blank? && params['q'].blank? && params[:scope].blank?
#country_contains or country_eq .. or depending of your filter type
params['q'] = {:country_eq => 'US'}
end
end
適応されたFivellsの回答は、スコープとダウンロードで正しく機能します。ハッキリと感じるが、仕事をしているようだ。コメントに注釈を付ける。
before_filter only: :index do
# when arriving through top navigation
if params.keys == ["controller", "action"]
extra_params = {"q" => {"country_eq" => "US"}}
# make sure data is filtered and filters show correctly
params.merge! extra_params
# make sure downloads and scopes use the default filter
request.query_parameters.merge! extra_params
end
end
これは魅力的です。ありがとうFivell! – TonyTakeshi
いつもようこそ!) – Fivell
これは、app/admin/model.rbファイル内のコントローラブロックに挿入する必要があります。例えば コントローラdo before_filter ... end –