1

我使用设计宝石。它没有配置为:confirmable,但是我希望用户不要在注册过程后立即自动登录。出于某种原因,现在他们会自动登录,这与我想要的完全相反。

那么我该怎么做呢?

4

2 回答 2

2

https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-(注册)

基本上,按照上面的步骤。在您的 after_sign_up_path_for 方法中,您可以调用

sign_out resource

然后将它们重定向到您希望它们访问的任何页面(可能是 root 或登录页面)。

用户通过devise调用的sign_up方法登录;这是标准程序——许多网站在用户注册后立即登录。大多数不需要先确认,所以你的用例有点不典型。尽管如此,执行我上面描述的方法应该可以完成您想要的操作,而无需实施可确认或进行任何会员批准。

于 2013-06-28T16:55:43.183 回答
1

注册后的用户登录是通过操作调用的sign_up方法实现的。您可以简单地用一个空的方法覆盖此方法以防止登录。这对我有用!Devise::RegistrationsController[create][1]

app/controllers/users/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController

   def sign_up(resource_name, resource)
   end
end

注意:替换users为您的表名。

额外的:

如果您只允许管理员添加新用户,或者可能是其他管理员,并使用 create 操作来添加它们,那么之前的方法也将给您带来不必退出的好处。after_sign_up_path_for您可以通过覆盖以下方法来自定义注册后要重定向到的页面app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
    def after_sign_up_path_for(user)
        '/users/show' # replace with the path you want
    end
于 2014-03-27T17:20:15.853 回答