2

我使用 Devise 为我的应用程序执行身份验证,一切正常,除了被检测为未验证失败的 Devise 注销消息:

en.devise.failure.unauthenticated: " You need to sign in or sign up before continuing "

我的意思是我在注销时收到此消息,而不是“已成功注销”消息。

也许我错误地个性化了我的设计系统。以下是我所做的个性化:

1/ 我使用自己的会话控制器来覆盖默认的 Devise 会话控制器。我唯一的目标是选择一个特殊的访问(登录/注册)布局:

class SessionsController < Devise::SessionsController

    layout 'access'

end

没有更多的代码。我只想使用位于views/layouts/access.html.haml.

当然,我将此添加到我的routes.rb文件中:

devise_for :users, :controller => { :sessions => 'sessions' }

2/ 我为 Devise 选择了另一种语言(法语),所以我下载devise.fr.yml并粘贴到config/locales/文件夹中,并config.i18n.default_locale = :frconfig/application.rb文件中设置

所有其他设计操作消息都是正确的。只有“退出”有问题。任何的想法?

提前致谢。

4

2 回答 2

6

看起来有一种方法可以在不继承会话控制器的情况下处理设计的自定义布局。看看这个文档:

https://github.com/plataformatec/devise/wiki/How-To:-Create-custom-layouts

编辑

要在用户退出后将其重定向回登录页面,请将其添加到您的应用程序控制器:

def after_sign_out_path_for(resource_or_scope)
  sign_ins_path
end
于 2012-08-27T13:15:32.017 回答
0

Devise 使用 http DELETE 请求进行注销请求。确保您使用此链接退出。<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>

于 2012-08-27T11:43:28.513 回答