我有一个Rails 3项目,Devise启用,确认已启用,因此用户必须在注册后通过电子邮件确认其帐户。目前该项目将用户返回到登录页面并引发“您已成功注册...”通知。我想要做的是将它们重定向到“谢谢”页面,并提供进一步的说明(检查您的电子邮件,垃圾邮件文件夹,等等)。Rails 3和Devise:重定向到页面注册之后(可确认)
我的第一站是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视图文件夹并移动到top/app/views文件夹中,作为e Rror回复说现在的观点不见了。无论如何,尽管控制器覆盖似乎无法正常工作(我认为视图本来不会破坏),但这些指示不起作用......页面忽略after_sign_up并在注册后返回登录页面。
出去打互联网包括其他堆栈溢出线程上,但没有我发现很适合我......无论答案混淆重定向注册了登录,或者他们实际上做的改变符号后重定向(因为Devise通常在注册后自动登录而无需确认启用)。
其他的事情我已经试过......
移动after_sign_up_path_for(资源)到应用程序控制器。不起作用。奇怪的是,对after_sign_in_path_for(resource)进行同样的操作,并且以用户身份登录并重定向。
将registrations_controller.rb从/ app/controllers /移动到/ app/controllers/users文件夹并相应地更新所有路由/参考/等等。不行。
将Devise的registrations_controller.rb复制到我自己的registrations_controller.rb中。没有工作,只是抛出一个错误,我把它全部回滚。
我试图def after_inactive_sign_up_path_for(资源),因为我想也许事实上,该帐户不活跃,但是罪魁祸首。这也被忽略。
还值得一提的是我已经尝试重新启动我的项目后,这些重大变化,但没有任何要求。
有没有人可以用可确认启用拉这个关闭任何成功?
我用的是1.1.8设计,没有考虑到更新的宝石。无论如何,我将Devise更新为1.2.1(以及Rails 3.0.5和其他所有宝石),但仍拒绝重定向,只返回主页并发出“您已成功注册”的消息。 ,我们无法登录您,因为您的帐户未经确认。“ (这对我来说是一个新消息,但我认为他们添加了Devise更新中的一个。)我的代码看起来与您的代码完全相同。但是上面的'after_sign_up_path_for'就是我在RegistrationsController中的所有内容,是足够的还是我需要更多的控制器? – Shannon 2011-03-29 03:53:52
另外,我也把上面的东西扔在我的gemfile中,试过Devise 1.3.0.dev,也忽略了我的控制器的重定向。 – Shannon 2011-03-29 04:10:00
等一下,我想我明白了。我用after_inactive_sign_up_path_for换出after_sign_up_path_for,现在它重定向到Google。所以最终的答案是这样的,以及如上所述更新宝石。非常感谢。 – Shannon 2011-03-29 04:24:10