Je veux créer des chemins de rails à la main plutôt que d'utiliser le resource :tasks
automatique (c'est juste un exercice, je vais revenir à l'utilisation des ressources: tâches une fois que je Comprenez cela). I/think/que j'ai la bonne syntaxe, mais les préfixes (path_helpers) générés lorsque j'écris les routes à la main sont faux. Pourquoi, et que ne fais-je pas correctement?Rails: routes générées à la main ont préfixe différent de ceux créés avec des ressources
Voici mon code:
Rails.application.routes.draw do
root to: 'tasks#index'
get 'tasks', to: 'tasks#index'
get 'tasks/:id', to: 'tasks#show'
get 'tasks/new', to: 'tasks#new'
post 'tasks', to: 'tasks#create'
get 'tasks/:id/edit', to: 'tasks#edit'
patch 'tasks/:id', to: 'tasks#update'
delete 'tasks/:id', to: 'tasks#destroy'
end
Voici les itinéraires & préfixes crée quand je l'appelle rails routes
dans mon terminal:
Prefix Verb URI Pattern Controller#Action
root GET / tasks#index
tasks GET /tasks(.:format) tasks#index
GET /tasks/:id(.:format) tasks#show
tasks_new GET /tasks/new(.:format) tasks#new
POST /tasks(.:format) tasks#create
GET /tasks/:id/edit(.:format) tasks#edit
PATCH /tasks/:id(.:format) tasks#update
DELETE /tasks/:id(.:format) tasks#destroy
Voici ce que je reçois lorsque j'utilise resource :tasks
Prefix Verb URI Pattern Controller#Action
tasks GET /tasks(.:format) tasks#index
POST /tasks(.:format) tasks#create
new_task GET /tasks/new(.:format) tasks#new
edit_task GET /tasks/:id/edit(.:format) tasks#edit
task GET /tasks/:id(.:format) tasks#show
PATCH /tasks/:id(.:format) tasks#update
PUT /tasks/:id(.:format) tasks#update
DELETE /tasks/:id(.:format) tasks#destroy
EDIT:
Pour répondre à quelques-unes des réponses: Je sais que je peux utiliser 'as' pour nommer les préfixes, mais je pense que je ne devrais pas avoir à le faire dans ce cas. D'après ce que je comprends, 'as' est seulement utilisé au cas où vous voulez changer le préfixe standard à un préfixe personnalisé, ou si vous pensez que vos itinéraires pourraient changer à l'avenir et vous ne voulez pas risquer de jouer avec votre aides. Je devrais toujours obtenir les préfixes corrects sans utiliser 'as'. Ici, cependant, le préfixe tasks_new avec la méthode get est à la fois lié aux méthodes # new et tasks # edit, ce que je ne trouve pas correct.
Tout comme un petit add-on, si vous voulez garder une trace de vos routes et préfixes au cours du développement, vous pouvez ajouter ce petit bijou: https://rubygems.org/gems/restful_routing – Casey