Rails Devise和skip_confirmation !,如何避免自动登录

时间:2014-08-19 11:17:35

标签: ruby-on-rails devise devise-confirmable

当我使用确认电子邮件中的链接确认我的帐户时,我已重定向到登录路径,这很好。 但是对于一些用户我想跳过确认,所以我在验证回复之前应用了如下代码:

if foo?
  self.skip_confirmation!
end

问题是,当我注册为该用户时,我自动登录,是否有任何方法可以阻止它?我想跳过确认但不是自动登录。

1 个答案:

答案 0 :(得分:0)

您可以尝试覆盖设计RegistrationsController并仅覆盖sign_up方法。在设计源中对该方法的评论说“在注册用户时签名。您可以在自己的RegistrationsController中覆盖此方法”。然后你可以像这样覆盖它:

def sign_up(resource_name, resource)
  if !foo?    # or you could use "if !resource.confirmed?" instead.
    super  # The current implementation just calls sign_in(resource_name, resource)
  end
end

我自己并没有这样做,但希望这会有所帮助。