2
我读过类似的文章,如Override devise registrations controller,但在我的应用程序设计不能正确覆盖。覆盖Devise的问题:: RegistrationsController
我在Mac上使用Devise 1.4.2和Rails 3.0.9(OSX 10.6.8)。
# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
def new
debugger
end
def create
debugger
end
end
# config/routes.rb
devise_for :users, :controllers => {:registrations => "registrations"}
然后,我开始我的本地服务器--debugger选项(红宝石debug19安装),当进入/用户/ sign_up,调试器不会触发。
rails server --debugger
Started GET "https://stackoverflow.com/users/sign_up" for 127.0.0.1 at 2011-07-11 21:21:46 +0900
Processing by Devise::RegistrationsController#new as HTML
Rendered devise/shared/_links.erb (3.8ms)
Rendered devise/registrations/new.html.erb within layouts/application (20.4ms)
更新:我用“rake routes”检查了我的路由,但是sign_up的路由依然如下。
user_registration POST /users(.:format) {
:action=>"create", :controller=>"devise/registrations"}
new_user_registration GET /users/sign_up(.:format) {
:action=>"new", :controller=>"devise/registrations"}
我想:控制器在POST时指向“注册”(无“devise /”)。 我错过了什么?
你的文件名是'registration_controllers.rb'它应该是'registration_controller.rb' – lloydpick
劳埃德,感谢您指出,但这是我发布到stackoverflow时的错字。我修好了它。 – tomodian
registrations_controller.rb可能更合适,特别是如果您在routes.db中调用它“注册”时 –