12

私はdeviseを使用しており、最近追加されたアクティブな管理者は、管理者を保持するためにadmin_usersの別のテーブルを作成しました。

ログインしてブラウズしようとすると、Active Admin ですべて正常に動作します。ただし、私のアプリケーションコントローラーには、一般ユーザー向けの次のものがあります。

before_filter :authenticate_user!, :except => [:show, :index]

このため、アクティブな管理者インターフェイス内で何かを編集または削除しようとすると、ログインするように求められます。コントローラーフォルダーまたはプロジェクトのどこにもコントローラーファイルがありません。

クライアント/ユーザーが直面しているすべてに適用したいアプリケーション beofre_filter をアクティブな管理者に無視させる方法を誰かが提案できますか?

4

4 に答える 4

41

で、config/initializers/active_admin.rb以下を追加できます。

config.skip_before_action :authenticate_user!

提供されている DSL を使用して ActiveAdmin コントローラーを変更することもできます: http://activeadmin.info/docs/8-custom-actions.html#modify_the_controller

注: Rails のバージョンが 5.0 より前の場合は、skip_before_filter.

于 2011-09-29T01:01:59.610 に答える
4

@coreywardのソリューションを機能させることができませんでしたが、このDeviseの投稿config/application.rbに従って編集し、以下を追加しました:

ActiveAdmin.register_page "Dashboard" do
    controller do
      skip_before_action :name_of_filter_to_skip
    end

    # Other code
end

admin/dashboard.rbトリックをしました。編集だけではうまくいきませんでしたconfig/application.rb。サーバーを再起動してください。

于 2012-10-03T20:22:14.150 に答える
2

Corey と Sooie の両方が正しいですが、部分的にのみ、あなたのブランケット authorize_user を停止します! フィルターがactive_adminに影響を与えないようにするには、両方の回答を実装する必要があります...

config/initializers/active_admin.rb

config.skip_before_filter :authorize_user!

アプリ/管理者/ダッシュボード.rb

controller do
  skip_before_filter :authorize_user!
end
于 2012-11-29T18:23:14.313 に答える