1

我正在尝试覆盖两个控制器以进行设计,但是结果,只有 routes.rb 中第一个列出的控制器被覆盖

  devise_for :users, :controllers => { :sessions => "users/sessions" }
  devise_for :users, :controllers => { :registrations => "users/registrations" }

我得到的是:

new_user_session GET    /users/sign_in(.:format)                             users/sessions#new
                             user_session POST   /users/sign_in(.:format)                             users/sessions#create
                     destroy_user_session DELETE /users/sign_out(.:format)                            users/sessions#destroy
                            user_password POST   /users/password(.:format)                            devise/passwords#create
                        new_user_password GET    /users/password/new(.:format)                        devise/passwords#new
                       edit_user_password GET    /users/password/edit(.:format)                       devise/passwords#edit
                                          PUT    /users/password(.:format)                            devise/passwords#update
                 cancel_user_registration GET    /users/cancel(.:format)                              devise/registrations#cancel
                        user_registration POST   /users(.:format)                                     devise/registrations#create
                    new_user_registration GET    /users/sign_up(.:format)                             devise/registrations#new
                   edit_user_registration GET    /users/edit(.:format)                                devise/registrations#edit
                                          PUT    /users(.:format)                                     devise/registrations#update
                                          DELETE /users(.:format)                                     devise/registrations#destroy

如果我首先列出注册控制器,它会工作,但会话控制器不会,,

任何的想法 ?

4

1 回答 1

1

您定义路线的方式将不起作用。因为 rails 将用于第一个匹配的路由。你可以重写如下:

devise_for :users, :controllers => { :sessions => "users/sessions", :registrations => "users/registrations" }

然后它应该工作。

于 2012-11-15T15:07:47.277 回答