如何在AccessDenied异常后注销用户? (设计)

时间:2012-05-28 14:27:41

标签: ruby-on-rails-3 devise

我的应用程序控制器中有这个:

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)?

BTW正常的注销链接非常有效。

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

埃斯

1 个答案:

答案 0 :(得分:2)

怎么样?:

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

但恕我直言,这不是一种可以预期的行为。