Szybka pomoc

Ściągawka z routingu w Rails

Szybki przewodnik po routingu w Rails: trasy zasobów, akcje member i collection, przestrzenie nazw, zakresy i pomocniki tras.

· Opublikowano

Router Rails rozpoznaje adresy URL i przekazuje je do odpowiednich akcji kontrolerów, generując jednocześnie wzajemne ścieżki i adresy URL za pośrednictwem helperów.

Trasy zasobów (resources)

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

  resources :articles do
    # Trasy elementów (działa na konkretnym obiekcie: /articles/:id/publish)
    member do
      patch :publish
    end

    # Trasy kolekcji (działa na zbiorze: /articles/search)
    collection do
      get :search
    end

    # Zagnieżdżone zasoby (/articles/:article_id/comments)
    resources :comments, only: [:create, :destroy]
  end
end

Pomocniki ścieżek (Route Path Helpers)

Akcja Pomocnik ścieżki Wygenerowany 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

Przestrzenie nazw i zakresy (Namespaces & Scopes)

# Namespace: prefiks URL /admin oraz kontrolery Admin::
namespace :admin do
  resources :users
end
# Kieruje do Admin::UsersController pod adresem /admin/users

# Scope: prefiks URL bez modyfikowania przestrzeni nazw kontrolera
scope "/v1" do
  resources :posts
end

Niestandardowe pojedyncze trasy i przekierowania

# Niestandardowe mapowanie metod HTTP
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'

# Stałe przekierowanie 301
get '/stories', to: redirect('/articles')

Materiały referencyjne

Powiązane tematy