私は、ActiveAdminのすべてのリソースコントローラによってアクセス可能でオーバーライド可能な検索コレクションアクションを持っています。これは、次のコードを持つ単一のActive管理リソースのコントローラのアクションを作成するには些細です:ActiveAdminベースコントローラのいずれかにルート/アクションを追加しますか?
collection_action :autocomplete_user_last_name, method: :get
def autocomplete_user
term = params[:term]
users = User.where('first_name LIKE ? OR last_name LIKE ? OR email LIKE ?', "%#{term}%", "%#{term}%", "%#{term}%").order(:first_name)
render json: users.map { |user|
{
id: user.id,
label: user.full_name,
value: user.full_name
}
}
end
しかし、どのように私はActiveAdminベースのコントローラ内の同様のアクションを作成しますか? Rails内でApplicationController
は、ルート、アクション、ヘルパーメソッドなどを作成できる他のコントローラと同じように動作しますが、このアクションのスコープはActive Adminに限られ、アプリケーション全体ではありません。 ActiveAdminにApplicationControllerと同等の機能がありますか? AAのコードを探し
、私はすべてのリソースコントローラのスーパークラスです次のベースコントローラが見つかりました:
ActiveAdmin::PageController
ActiveAdmin::BaseController
ActiveAdmin::ResourceController
しかし、collection
とmember
アクションは、これらのクラス内で定義されていませんが。
ありがとう、私はそれを試みた。 'collection_action'はそのコンテキストで定義されていません。 –
あなたはそうです。 collection_actionは、AA DSLで定義されています。私はこれを見て:https://www.viget.com/articles/8-insanely-useful-activeadmin-customizationsしかし、モジュールにcollection_actionを混在させる方法を考え出していない。 –
ありがとうございました。私はちょうど特定のリソースへのルート/コントローラアクションのスコープを終了しました。私が求めていることが現在AAのAPIで可能かどうかは分かりません。 –