我有一个带有 Devise 的 Rails 3 项目,启用了可确认,因此用户必须在注册后通过电子邮件确认他们的帐户。目前,该项目将用户返回到登录页面并抛出“您已成功注册...”通知。我想做的是将他们重定向到“谢谢”页面,并附上进一步的说明(检查您的电子邮件、垃圾邮件文件夹、等等)。
我的第一站是 Devise wiki,在那里我 found this page .看起来很容易,我进行了以下更改并完全按照说明进行操作...
/app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
protected
def after_sign_up_path_for(resource)
"http://google.com"
end
end
/config/routes.rb
devise_for :users, :controllers => { :registrations => "registrations" }
我必须对方向进行的一项修改是将“registrations”文件夹从/app/views/devise View 文件夹中移到顶部/app/views 文件夹中,因为返回的错误是 View 现在丢失。无论如何,尽管 Controller 覆盖似乎有效(我认为否则这些 View 最初不会被破坏),但这些说明不起作用......该页面忽略了 after_sign_up 并在注册后返回到登录页面。
在互联网上打猎,包括其他 Stack Overflow 线程,但我没有发现任何对我有用的答案......注册后自动登录,无需确认启用)。
我尝试过的其他事情......
有没有人在启用可确认的情况下成功完成这项工作?
最佳答案
我只是将@Shannon 的评论放入一个答案中,以便于查找。
如果您在注册后需要电子邮件确认,您的用户将处于中间状态,即他们已注册但未单击通过电子邮件发送给他们的链接以确认其帐户。这是一个无效的注册。要在这种情况下重定向,您需要指定:
def after_inactive_sign_up_path_for(resource)
"http://example.com"
end
关于ruby-on-rails - Rails 3 和设计 : Redirecting to page following signup (confirmable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5463012/