Ο δρομολογητής του Rails αναγνωρίζει διευθύνσεις URL και τις αποστέλλει στην αντίστοιχη ενέργεια του controller, δημιουργώντας παράλληλα διαδρομές μέσω helpers.
Διαδρομές πόρων (resources)
Rails.application.routes.draw do
root "home#index"
resources :articles do
# Διαδρομές μέλους (λειτουργεί σε συγκεκριμένο στοιχείο /articles/:id/publish)
member do
patch :publish
end
# Διαδρομές συλλογής (λειτουργεί στο /articles/search)
collection do
get :search
end
# Ένθετοι πόροι (/articles/:article_id/comments)
resources :comments, only: [:create, :destroy]
end
end
Βοηθοί διαδρομών (Route Path Helpers)
| Ενέργεια (Action) | Βοηθός διαδρομής (Path Helper) | Παραγόμενο URL |
|---|---|---|
index |
articles_path |
/articles |
show |
article_path(@article) |
/articles/:id |
new |
new_article_path |
/articles/new |
edit |
edit_article_path(@article) |
/articles/:id/edit |
Χώροι ονομάτων & Πεδία (Namespaces & Scopes)
# Namespace: πρόθεμα /admin στο URL και Admin:: στους controllers
namespace :admin do
resources :users
end
# Δρομολογεί στο Admin::UsersController στο /admin/users
# Scope: πρόθεμα στο URL χωρίς τροποποίηση του namespace του controller
scope "/v1" do
resources :posts
end
Προσαρμοσμένες μεμονωμένες διαδρομές & ανακατευθύνσεις
# Προσαρμοσμένη αντιστοίχιση ρημάτων HTTP
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'
# 301 Μόνιμη ανακατεύθυνση
get '/stories', to: redirect('/articles')