0

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

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

根据这个文件,看起来我可以定义 aafter_inactive_sign_up_path_for(resource)和 aafter_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!助手会启动并重定向到登录页面。

4

1 回答 1

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-(注册)

于 2013-03-10T22:38:53.707 回答