问题重写Devise :: RegistrationsController

时间:2011-07-11 12:34:36

标签: ruby-on-rails-3 devise

我读过像Override devise registrations controller这样的类似文章,但我的应用中的Devise没有正确覆盖。

我在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选项启动了本地服务器(安装了ruby-debug19),当访问/ users / sign_up时,调试器不会触发。

rails server --debugger

Started GET "/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时指向“注册”(没有“设计/”)。 我错过了什么?

1 个答案:

答案 0 :(得分:0)

在routes.rb文件中,

您可以通过以下方式修改您的设计路线:

devise_for :users, :controllers => { :registrations => 'registrations' }