Riferimento rapido

Guida rapida al routing di Rails

Guida rapida al routing in Rails: route di risorse, azioni member e collection, namespace, scope, vincoli e route helper.

· Pubblicato

Il router di Rails riconosce gli URL e li invia all'azione appropriata del controller, generando contemporaneamente percorsi e URL tramite helper dedicati.

Rotte per risorse (resources)

Rails.application.routes.draw do
  root "home#index"

  resources :articles do
    # Route membro (opera su un elemento specifico /articles/:id/publish)
    member do
      patch :publish
    end

    # Route di collezione (opera su /articles/search)
    collection do
      get :search
    end

    # Risorse nidificate (/articles/:article_id/comments)
    resources :comments, only: [:create, :destroy]
  end
end

Helper di percorso (Route Path Helpers)

Azione Path Helper URL Generato
index articles_path /articles
show article_path(@article) /articles/:id
new new_article_path /articles/new
edit edit_article_path(@article) /articles/:id/edit

Namespace & Scope

# Namespace: prefisso URL /admin e controller preceduti da Admin::
namespace :admin do
  resources :users
end
# Indirizza a Admin::UsersController su /admin/users

# Scope: prefisso URL senza modificare il namespace del controller
scope "/v1" do
  resources :posts
end

Rotte singolari personalizzate e reindirizzamenti

# Mappatura personalizzata dei verbi HTTP
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'

# Reindirizzamento permanente 301
get '/stories', to: redirect('/articles')

Riferimenti

Argomenti correlati