2016-04-02 11 views
0

私は、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 

しかし、collectionmemberアクションは、これらのクラス内で定義されていませんが。

答えて

0

特定のリソース。私が求めていることが現在AAのAPIで可能かどうかは分かりません。

1

私はすべてのAAリソースコントローラが `ActiveAdmin :: ResourceController 'から継承していると思います。私はここにメモリから働いているここのドキュメントClass: ActiveAdmin::ResourceController

を参照してください、私は次のようにactive_admin.rbであなたのコントローラのコードをラップすることから始めます:私はちょうどにルーティング/コントローラのアクションをスコープ終わっ

ActiveAdmin::ResourceController.class_eval do 

    collection_action :autocomplete_user_last_name, method: :get do 

    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 
    end 
end 
+0

ありがとう、私はそれを試みた。 'collection_action'はそのコンテキストで定義されていません。 –

+0

あなたはそうです。 collection_actionは、AA DSLで定義されています。私はこれを見て:https://www.viget.com/articles/8-insanely-useful-activeadmin-customizationsしかし、モジュールにcollection_actionを混在させる方法を考え出していない。 –

+0

ありがとうございました。私はちょうど特定のリソースへのルート/コントローラアクションのスコープを終了しました。私が求めていることが現在AAのAPIで可能かどうかは分かりません。 –

関連する問題