Rails 3.2 を使用しており、単一のモデルと役割モデルへの HABTM 関係を使用して、アクティブな管理者と一緒に事前に作成されたデバイスを使用するのに問題があります。
このチュートリアルに従いましたhttp://jaysonlane.net/2012/04/rails-devise-and-active-admin-single-user-model
そして、次のようないくつかのことを変更しました
unless current_user.admin?
為に
unless current_user.roles.first.id==1 #checks if its an admin or not
通常のユーザーでログインし、:300/admin から管理ページにアクセスしようとすると、「許可が拒否されました」というメッセージが表示されますが、これは良いことです。
ただし、管理者アカウントでログインし (管理者として正常にログインします)、:3000/admin に移動すると、次のエラーが表示されます。
NoMethodError in Admin/dashboard#index
undefined method for 'destroy_admin_user_session_path'
それを次のように変更します。
config.logout_link_path = :destroy_current_admin_user_session_path
or
config.logout_link_path = :destroy_current_user_session_path
どちらも役に立ちません。
よろしくお願いいたします。
修繕:
rake routes
デフォルトのactive_admin初期化パスとメソッドを実行してルートに変更する必要がありました。
ログアウト時のエラーについてですが、Active admin でサインアウトするためのデフォルトの方法は :get です。そのため、アクティブな管理者で「ログアウト」をクリックするとエラーが発生します。これを修正するには、config->initializers->active_admin.rb に移動して追加します
config.logout_link_method= :delete
これが誰かに役立つことを願っています。
@pjammer と @iain に、私を正しい方向に導いてくれてありがとう。よろしく