使用Devise +确认后,在注册后将用户重定向到特定页面

时间:2013-03-10 22:31:39

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

我正在使用Devise进行用户注册,并使用Confirmable执行电子邮件验证。

用户注册后,我想将它们重定向到一个URL,说明他们需要查看他们的电子邮件并点击发送的链接。我正在使用Devise的:authenticate_user!方法来确保用户在查看网站内容之前登录。

根据this file,我可以定义after_inactive_sign_up_path_for(resource)after_sign_up_path_for(resource)来控制此重定向。

这是我的应用程序控制器:

class ApplicationController < ActionController::Base
protect_from_forgery
before_filter :authenticate_user!, :except => [:after_inactive_sign_up_path_for,     :after_sign_up_path_for]

def after_sign_up_path_for(user)
  confirm_path
end

def after_inactive_sign_up_path_for(user)
  confirm_path
end

end 

但它不起作用。 confirm_path位于我的static_pages控制器中,无需登录即可访问,因为我已skip_before_filter :authenticate_user!包含

当用户注册时,:authenticate_user!助手会启动并重定向到登录页面。

1 个答案:

答案 0 :(得分:4)

您是否尝试过这样覆盖注册控制器:

class RegistrationsController < Devise::RegistrationsController
  protected

  def after_inactive_sign_up_path_for(resource)
    '/an/example/path'
  end
end

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