0

ACL9 によってアクセスが制御されるユーザー モデルがあります。

UsersController:

#ACL9 related stuff
before_filter :load_user, :only => [:show]
  access_control do
    allow :owner, :of => :user, :to => [:show]
  end

def load_user
  user = User.find(params[:id])
end

ApplicationController:

rescue_from 'Acl9::AccessDenied', :with => :access_denied

def access_denied
  authenticate_user! # a method from Devise
end

サインイン ページの URL を入力しても問題ありませんhttp://localhost:3000/users/sign_inが、たとえば、最初にユーザー ページを入力すると、上記のロジックによって自動的にサインイン ページにリダイレクトされることが予想されるため、問題が発生します。

http://localhost:3000/users/1=>無限リダイレクト地獄。users/1にリダイレクトする代わりに、再び にリダイレクトしようとしusers/sign_inます。

何がうまくいかないのかについて意見を持っている人はいますか?

4

1 に答える 1

0

Devise ユーザーコントローラーで Acl9 を使うべきではないと思います。あなたは認証されていないので、あなたには権利がなく、認証されません:D. ユーザーが削除することを禁止したい場合は、次のようにする必要があります。

access_control :only => [:destroy] do
      allow :admin
end

UsersController については、アプリケーション コントローラーにそのまま残したい場合は、access_control を上書きする必要があります。

于 2010-07-14T05:19:49.593 に答える