0Pricing
Ruby Academy · Урок

Маршруты и ресурсы

Маршрутизация в стиле REST

«Маршруты и ресурсы» — бесплатный урок Ruby Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ruby Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ruby Academy содержит 4 уроков всего.

Что такое маршрутизация

Маршрутизация связывает входящий HTTP-запрос (метод и путь) с действием контроллера, которое его обрабатывает. Файл маршрутов — это входная точка приложения Rails.

  • Маршруты находятся в config/routes.rb.
  • Каждый маршрут связывает URL с controller#action.
  • Rails сопоставляет маршруты сверху вниз.

Простой маршрут

Самый простой маршрут связывает путь с действием с помощью get. В этом примере запрос GET к /about вызывает действие about контроллера PagesController.

Rails.application.routes.draw do
  get "/about", to: "pages#about"
end

Методы HTTP

Каждый маршрут указывает метод, обозначающий намерение:

  • get читает данные.
  • post создаёт данные.
  • patch / put обновляет данные.
  • delete удаляет данные.

Один и тот же путь с разными методами может вести к разным действиям.

Ресурсы REST

Вспомогательный метод resources создаёт семь стандартных маршрутов REST для модели одной строкой. Это основа принятой в Rails маршрутизации.

Rails.application.routes.draw do
  resources :articles
end

Семь действий

resources :articles создаёт маршруты для:

  • index — списка, show — одного элемента.
  • new — формы, create — сохранения.
  • edit — формы, update — сохранения.
  • destroy — удаления.

Так покрывается весь жизненный цикл ресурса.

Вспомогательные методы путей

Маршруты создают именованные вспомогательные методы, поэтому вам не придётся прописывать URL вручную. resources :articles предоставляет articles_path, article_path(@article), new_article_path и edit_article_path(@article).

articles_path            # => "/articles"
article_path(5)          # => "/articles/5"
new_article_path         # => "/articles/new"
edit_article_path(5)     # => "/articles/5/edit"

Ограничение действий

Используйте only или except, чтобы создать только нужные маршруты. Так набор маршрутов остаётся небольшим и формируется намеренно.

resources :articles, only: [:index, :show]
resources :comments, except: [:edit, :update]

Вложенные ресурсы

Вкладывайте ресурсы, чтобы выразить принадлежность в URL. Комментарии, принадлежащие статье, получают путь /articles/1/comments. Вложенный маршрут передаёт article_id контроллеру.

resources :articles do
  resources :comments
end

# GET /articles/1/comments

Корневой маршрут

root определяет, что загружается по адресу /, то есть на главной странице приложения. Для ясности разместите его ближе к началу файла маршрутов.

Rails.application.routes.draw do
  root "articles#index"
end

Просмотр маршрутов

Запустите rails routes, чтобы вывести все маршруты вместе с их методом, путём, вспомогательным методом и парой controller#action. Это самый быстрый способ понять или отладить маршрутизацию приложения.

Маршруты для элемента и коллекции

Добавляйте пользовательские действия к ресурсу:

  • Маршруты member работают с одной записью: /articles/1/publish.
  • Маршруты collection работают со всем набором: /articles/search.
resources :articles do
  member { post :publish }
  collection { get :search }
end

Быстрая проверка

Проверьте, насколько хорошо вы поняли маршрутизацию.

Повторение: маршруты и ресурсы

Вы изучили маршрутизацию REST:

  • Маршруты связывают метод и путь с controller#action.
  • resources создаёт семь стандартных маршрутов.
  • Вспомогательные методы путей избавляют от URL, прописанных вручную.
  • only/except, вложенные ресурсы, маршруты member и collection позволяют настроить набор маршрутов.
  • root задаёт главную страницу, а rails routes выводит все маршруты.

Далее мы напишем контроллеры, которые обрабатывают эти запросы.

Часто задаваемые вопросы

Урок «Маршруты и ресурсы» бесплатный?

Да — полный текст урока «Маршруты и ресурсы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ruby Academy, подпишись на CoddyKit PRO. Курс Ruby Academy содержит 4 уроков всего.

Чему я научусь в уроке «Маршруты и ресурсы»?

Маршрутизация в стиле REST Ты практикуешь Ruby Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ruby Academy?

Предыдущий опыт не требуется. Ruby Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Маршруты и ресурсы»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ruby Academy?

Да. Каждый урок Ruby Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Маршруты и ресурсы
  2. Контроллеры и действия
  3. Строгие параметры
  4. Представления и отображение
← Назад к Ruby Academy