Ruby on rails 设计:重复路由条目,尽管我有自定义条目

Ruby on rails 设计:重复路由条目,尽管我有自定义条目,ruby-on-rails,devise,routes,Ruby On Rails,Devise,Routes,当我运行rake routes | grep sessions时,尽管已经有了自己的设置,但仍会收到重复的条目 这是我的输出:(顺便说一句,这些不是所有的副本。) 最上面的三个是designe中的默认路由设置,最下面的三个是我在config/routes.rb中添加的设置 以下是我的config/routes.rb文件中有关Desive的示例: Rails.application.routes.draw do root to: 'pages#index' # Users devis

当我运行
rake routes | grep sessions
时,尽管已经有了自己的设置,但仍会收到重复的条目

这是我的输出:(顺便说一句,这些不是所有的副本。)

最上面的三个是designe中的默认路由设置,最下面的三个是我在
config/routes.rb
中添加的设置

以下是我的
config/routes.rb
文件中有关Desive的示例:

Rails.application.routes.draw do
  root to: 'pages#index'

  # Users
  devise_for :users, controllers: {
     # I override a few actions in my own controller so I needed this
     registrations: 'users/registrations',
  }

  # FYI: as is an alias for devise_scope
  as :user do
    # devise/sessions_controller handlers
    get    'login',           to: 'devise/sessions#new'
    post   'login',           to: 'devise/sessions#create'
    delete 'logout',          to: 'devise/sessions#destroy'

    #.... other registrations controller settings that are also getting duplicated
  end

  # .... all my other application routes
end
我想我要问的是,既然我已经创建了自己的路由,如何从designe中抑制默认路由?如果您需要更多我的
rake routes
输出或
config/routes.rb
文件,我可以提交全部内容

编辑:


Ok看起来我需要在我的
design\u for:users
块中添加一个
:path\u name
散列。从中,我可以在页面末尾看到路径的选项选择。同时删除
:path
选项,我得到了一个与我想要的匹配的无冲突版本

以下是我必须做的事情,以使它(大部分)正确:

它并不完全完美,所以我会给任何人一个答案,告诉我如何获得:

                    root GET    /                          pages#index
        new_user_session GET    /sign-in(.:format)         devise/sessions#new
            user_session POST   /sign-in(.:format)         devise/sessions#create
    destroy_user_session DELETE /sign-out(.:format)        devise/sessions#destroy
cancel_user_registration GET    /register/cancel(.:format) users/registrations#cancel
   new_user_registration GET    /register(.:format)        users/registrations#new
  edit_user_registration GET    /register/edit(.:format)   users/registrations#edit
       user_registration PATCH  /register(.:format)        users/registrations#update
                          PUT    /register(.:format)       users/registrations#update
                          DELETE /register(.:format)       users/registrations#destroy
                          POST   /register(.:format)       users/registrations#create
                 password GET    /password(.:format)       devise/passwords#new
           reset_password GET    /reset-password(.:format) devise/passwords#edit
                          PATCH  /reset-password(.:format) devise/passwords#update
                          PUT    /reset-password(.:format) devise/passwords#update
                          POST   /password(.:format)       devise/passwords#create

 I DONT WANT THE FOLLOWING IN MY ROUTES:
       new_user_password GET    /new(.:format)             devise/passwords#new
      edit_user_password GET    /edit(.:format)            devise/passwords#edit
           user_password PATCH  /                          devise/passwords#update
                         PUT    /                          devise/passwords#update
                         POST   /                          devise/passwords#create
我可以将
:password=>''
更改为
:password=>“重置密码”
,但随后我得到以下信息:

 new_user_password GET  /reset-password/new(.:format)  devise/passwords#new
edit_user_password GET  /reset-password/edit(.:format) devise/passwords#edit
                   POST /reset-password(.:format)      devise/passwords#create
我想要的是:

 new_user_password GET  /password(.:format)       devise/passwords#new
edit_user_password GET  /reset-password(.:format) devise/passwords#edit
                   POST /password(.:format)       devise/passwords#create

Ok看起来我需要在我的
design\u for:users
块中添加一个
:path\u name
散列。从中,我可以在页面末尾看到路径的选项选择。同时删除
:path
选项,我得到了一个与我想要的匹配的无冲突版本

编辑:

在我找到的(并包括在我的问题中)之上,我还找到了
:skip
选项。有人已经问了我一个类似的问题,对此的完美答案(告诉Desive不要生成任何我想要覆盖的路线)如下:


确定看起来我需要向我的
设计:用户
块中添加一个
:path\u名称
散列。从中,我可以在页面末尾看到路径的选项选择。同时删除
:path
选项,我得到了一个与我想要的匹配的无冲突版本

编辑:

在我找到的(并包括在我的问题中)之上,我还找到了
:skip
选项。有人已经问了我一个类似的问题,对此的完美答案(告诉Desive不要生成任何我想要覆盖的路线)如下:

 new_user_password GET  /reset-password/new(.:format)  devise/passwords#new
edit_user_password GET  /reset-password/edit(.:format) devise/passwords#edit
                   POST /reset-password(.:format)      devise/passwords#create
 new_user_password GET  /password(.:format)       devise/passwords#new
edit_user_password GET  /reset-password(.:format) devise/passwords#edit
                   POST /password(.:format)       devise/passwords#create