Mac OS Catalina Ruby 2.7.1 Rails 6.0.3.2
Présentez la fonction de connexion et définissez l'itinéraire. Après cela, lorsque j'ai exécuté des routes Rails, j'ai eu l'erreur suivante.
Invalid route name, already in use: 'new_user_session' (ArgumentError)
You may have defined two routes with the same name using the `:as` option, or you may be overriding a route already defined by a resource with the same naming. For the latter, you can restrict the routes created with `resources` as explained here:
https://guides.rubyonrails.org/routing.html#restricting-the-routes-created
Apparemment, la route nommée "nouvelle_session_utilisateur" est déjà utilisée! Il semble dire.
L'itinéraire lorsque le phénomène se produit est le suivant.
routes.rb
Rails.application.routes.draw do
devise_for :users
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
root to: 'toppages#index'
resources :users, only: [:index, :show, :edit, :update, :destroy] do
member do
get :followings
get :followers
get :likes
end
end
devise_for :users,
path: '',
path_names: {
sign_up: '',
sign_in: 'login',
sign_out: 'logout',
registration: 'signup'
},
controllers: {
registrations: 'users/registrations',
sessions: 'users/sessions',
passwords: 'users/passwords'
}
devise_scope :user do
get 'signup', to: 'users/registrations#new'
get 'login', to: 'users/sessions#new'
get 'logout', to: 'users/sessions#destroy'
end
resources :posts, only: [:create, :destroy] do
collection do
get :search
end
end
resources :relationships, only: [:create, :destroy]
resources :favorites, only: [:create, :destroy]
end
Je pensais "je n'ai pas défini deux lieux", mais tout à coup j'ai remarqué qu'une ligne avait été ajoutée en haut w Résolu en supprimant la ligne devise_for: users.
routes.rb
Rails.application.routes.draw do
root to: 'toppages#index'
resources :users, only: [:index, :show, :edit, :update, :destroy] do
member do
get :followings
get :followers
get :likes
end
end
devise_for :users,
path: '',
path_names: {
sign_up: '',
sign_in: 'login',
sign_out: 'logout',
registration: 'signup'
},
controllers: {
registrations: 'users/registrations',
sessions: 'users/sessions',
passwords: 'users/passwords'
}
devise_scope :user do
get 'signup', to: 'users/registrations#new'
get 'login', to: 'users/sessions#new'
get 'logout', to: 'users/sessions#destroy'
end
resources :posts, only: [:create, :destroy] do
collection do
get :search
end
end
resources :relationships, only: [:create, :destroy]
resources :favorites, only: [:create, :destroy]
end
J'ai pu le démarrer en toute sécurité!
Pour les erreurs de type déjà utilisées, il semble bon de penser que le même routage a déjà été défini comme dans ce cas. (Tel quel) Si la même erreur se produit à l'avenir, elle semble être résolue rapidement.