Краткий справочник

Шпаргалка по маршрутизации в Rails

Краткое справочное руководство по маршрутизации в Rails: ресурсные маршруты, действия member и collection, пространства имен, области видимости и хелперы путей.

· Опубликовано

Маршрутизатор Rails распознает URL-адреса и направляет запросы к действию контроллера, а также генерирует пути и URL с помощью методов-хелперов.

Ресурсные маршруты (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) Хелпер пути Сгенерированный 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: префикс URL /admin и контроллеры внутри пространства Admin::
namespace :admin do
  resources :users
end
# Маршрутизирует на Admin::UsersController по адресу /admin/users

# Scope: префикс URL без изменения пространства имен контроллера
scope "/v1" do
  resources :posts
end

Пользовательские одиночные маршруты и редиректы

# Пользовательское сопоставление HTTP-глаголов
get '/about', to: 'pages#about'
post '/webhook', to: 'webhooks#receive'

# Постоянное перенаправление 301
get '/stories', to: redirect('/articles')

Полезные ссылки

Связанные темы