Le routeur de Rails analyse les URL et les distribue aux actions des contrôleurs, tout en générant des chemins et des URL inverses via des méthodes d'aide.
Routes de ressources (resources)
Rails.application.routes.draw do
root "home#index"
resources :articles do
# Routes membres (opère sur un élément spécifique /articles/:id/publish)
member do
patch :publish
end
# Routes de collection (opère sur /articles/search)
collection do
get :search
end
# Ressources imbriquées (/articles/:article_id/comments)
resources :comments, only: [:create, :destroy]
end
end
Helpers de routes (Route Path Helpers)
| Action | Helper de chemin | URL générée |
|---|---|---|
index |
articles_path |
/articles |
show |
article_path(@article) |
/articles/:id |
new |
new_article_path |
/articles/new |
edit |
edit_article_path(@article) |
/articles/:id/edit |
Espaces de noms & Scopes (Namespaces & Scopes)
# Namespace : préfixe URL avec /admin et contrôleurs avec Admin::
namespace :admin do
resources :users
end
# Route vers Admin::UsersController à /admin/users
# Scope : préfixe URL sans modifier l'espace de noms du contrôleur
scope "/v1" do
resources :posts
end
Routes singulières personnalisées & redirections
# Mappage personnalisé de verbes HTTP
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'
# Redirection permanente 301
get '/stories', to: redirect('/articles')