Rails 3 / devise似乎忽略了自定义控制器
使用Rails 3应用程序的设计,我已经阅读了如何自定义后注册路由的wiki / docs,我正在使用可确认模块,所以我想我需要覆盖after_inactive_sign_up_path_for
我想我已经做得很好,但它完全忽略了我的自定义控制器,并在注册后仍然路由到root_path。 使我抓狂。
我的注册是使用用户模型,我使用generate任务复制了devise的视图; 如果我将它们移动到视图/注册设计回落到默认视图(在我猜的gem中),所以它似乎不是’注意’我的控制器
我的路线中有这个:
devise_for :users, :controllers => { :registrations => "registrations" } match 'sign_up_done' => 'home#sign_up_done', :as => :after_sign_up
这是我的控制器:(controllers / registrations_controller.rb)
class RegistrationsController < Devise::RegistrationsController def after_inactive_sign_up_path_for(resource) after_sign_up_path end def after_sign_up_path_for(resource) after_sign_up_path end end
(添加after_sign_up_path_for以防万一,使用确认)
它似乎完全忽略了我的控制器,命名错了吗? 谢谢你的任何输入!
我认为您的文件夹结构可能有问题。 尝试这个结构:(它与Gem文件夹中的相同)
app/controllers/devise/registrations_controller.rb app/views/devise/registrations/new.html.erb app/views/devise/registrations/edit.html.erb
并且控制器文件看起来与在gem文件夹中声明的相同:
#app/controllers/devise/registrations_controller.rb # NOT: class RegistrationsController < Devise::RegistrationsController , # since you are "overwriting" it. class Devise::RegistrationsController < DeviseController def after_inactive_sign_up_path_for(resource) #... end end