2

私はこれをアプリケーションコントローラーに持っています:

rescue_from CanCan::AccessDenied do |exception|
  redirect_to destroy_user_session_path, :method => :delete, :alert => exception.message
end

ユーザーがアクセスできないリソースを開こうとしたときに、ユーザーをログアウトしたいと思います。しかし、「削除」メソッドは使用されていません。

No route matches [GET] "/authenticate/users/sign_out"

ユーザーをログアウトしてログインフォーム(new_user_session)を表示するにはどうすればよいですか?

ところで、通常のログアウトリンクは完全に機能します。

<%= link_to "Logout: #{current_user.name}", destroy_user_session_path, :method => :delete %>

エース

4

1 に答える 1

2

どうですか?:

rescue_from CanCan::AccessDenied do |exception|
  sign_out :user if user_signed_in?
  redirect_to new_user_session_path, alert: exception.message
end

しかし、私見では、それは期待できる動作ではありません。

于 2012-05-28T14:37:02.380 に答える