Ruby on rails 设计不路由到新控制器的方法

Ruby on rails 设计不路由到新控制器的方法,ruby-on-rails,devise,rails-routing,Ruby On Rails,Devise,Rails Routing,我正在努力解决一个设计问题,但我就是想不出来 我在我的注册控制器中定义了一个新的更新方法,该方法的开头为: class RegistrationsController < Devise::RegistrationsController def update debugger @user = session[:registered_as] logger.info "user: #{@user}" @user = User.find(current_user.

我正在努力解决一个设计问题,但我就是想不出来

我在我的注册控制器中定义了一个新的更新方法,该方法的开头为:

class RegistrationsController < Devise::RegistrationsController
def update
    debugger
    @user = session[:registered_as] 
    logger.info "user: #{@user}"
    @user = User.find(current_user.id)
... (lots of other stuff here ) ...

def create
    build_resource
    logger.debug "I'm creating a new user "

    if resource.save
    ....
路由文件是:

authenticated :user do
   root :to => 'home#index'
 end
devise_scope :user do
 root :to => "devise/registrations#new"
 match '/user/registration' => 'devise/registrations#update', :via => :put, :as => :update_user_registration
 match '/user/confirmation' => 'confirmations#update', :via => :put, :as => :update_user_confirmation
end
devise_for :users, :controllers => { :registrations => "registrations", :confirmations => "confirmations" }
match 'users/bulk_invite/:quantity' => 'users#bulk_invite', :via => :get, :as => :bulk_invite
resources :users do
   get 'invite', :on => :member
 end
end
更新:我意识到我没有解释真正的古怪。解释说有些东西传递给原始控制器,而有些东西没有


有人知道我做错了什么吗?

你能发布你的
config/routes.rb
吗?你在问题的不同部分为同一条路线发布了两个不同的条目:
match'/user/registration'=>“registrations”
和match
'/user/registration'=>“design/registrations”
。第一个将映射到
RegistrationsController
,第二个将映射到
Desive::RegistrationsController
。是的,这是在与原始问题不同的时间发布routes.rb的产物-它们从来没有像那样不同。我试着把这个装置拿出来/放在里面-什么也没修好。不过,我对这个问题进行了编辑,使其更有意义,并进一步解释了其中的古怪之处。
Processing by RegistrationsController#create as */*
Parameters: {"user"=>{"email"=>"adfas@ljljla.com"}}
I'm creating a new user 
(0.1ms)  begin transaction
.... 
Reason Load (0.1ms)  SELECT "reasons".* FROM "reasons" 
Rendered devise/registrations/_thankyou.html.erb (22.2ms)
Completed 200 OK in 45ms (Views: 30.8ms | ActiveRecord: 2.6ms)

Started PUT "/user/registration.user" for 127.0.0.1 at 2013-08-20 18:11:34 -0700
Processing by Devise::RegistrationsController#update as 
Parameters: {"utf8"=>"✓", "authenticity_token"=>"0kzemeZYdnDQdV+jQJCE+tvwprPBXKZi/R9wbjsHYds=", "user"=>{"reason_id"=>"1"}, "commit"=>"Record Your Reason"}
Completed 401 Unauthorized in 1ms
authenticated :user do
   root :to => 'home#index'
 end
devise_scope :user do
 root :to => "devise/registrations#new"
 match '/user/registration' => 'devise/registrations#update', :via => :put, :as => :update_user_registration
 match '/user/confirmation' => 'confirmations#update', :via => :put, :as => :update_user_confirmation
end
devise_for :users, :controllers => { :registrations => "registrations", :confirmations => "confirmations" }
match 'users/bulk_invite/:quantity' => 'users#bulk_invite', :via => :get, :as => :bulk_invite
resources :users do
   get 'invite', :on => :member
 end
end