текст перекладу
Ruby on Rails (Rails) — популярний фреймворк, який використовується для розробки веб-додатків. Однією з найсильніших рис Rails є система «маршрутів», яка зв’язує URL-адреси з відповідними діями контролерів. У цій статті ви дізнаєтесь, що таке маршрути Rails, як вони працюють і як використовувати їх у своїх проектах.
1. Що таке маршрути?
Маршрути — це система, яка направляє вхідні HTTP-запити до правильного контролера та дії. У Rails кожен URL відповідає певній дії (функції) в контролері. Коли користувач відвідує сторінку, Rails направляє запит до відповідного контролера та дії. Ця дія зазвичай отримує дані для відображення користувачу або виконує іншу задачу, наприклад, оновлення даних.
2. Як визначити маршрути?
У Rails маршрути визначаються в файлі config/routes.rb
. Цей файл вказує Rails, що робити, коли запитується певний URL.
Наприклад, маршрут може бути визначений ось так:
Rails.application.routes.draw do
get 'home/index'
end
У цьому прикладі рядок get 'home/index'
вказує Rails направити GET-запити для URL /home/index
до дії index
в HomeController
.
3. HTTP методи
Маршрути Rails працюють з різними HTTP-методами (GET, POST, PUT, DELETE тощо). Кожен метод представляє собою різний тип запиту.
- GET: Використовується для отримання сторінки або даних.
- POST: Використовується для створення нових даних.
- PUT/PATCH: Використовується для оновлення існуючих даних.
- DELETE: Використовується для видалення даних.
Приклад:
Rails.application.routes.draw do
get 'posts', to: 'posts#index' # Показати список постів
post 'posts', to: 'posts#create' # Створити новий пост
put 'posts/:id', to: 'posts#update' # Оновити існуючий пост
delete 'posts/:id', to: 'posts#destroy' # Видалити пост
end
4. RESTful маршрутизація
Rails автоматично генерує маршрути на основі принципів RESTful (Representational State Transfer). Це дозволяє легко визначати маршрути для стандартних дій з ресурсами (наприклад, для posts
).
Ось як можна згенерувати маршрути для ресурсу за допомогою ключового слова resources
:
Rails.application.routes.draw do
resources :posts
end
Це автоматично генерує маршрути для стандартних CRUD (Create, Read, Update, Delete) операцій:
GET /posts
→posts#index
(Список всіх постів)GET /posts/new
→posts#new
(Показати форму для створення нового поста)POST /posts
→posts#create
(Створити новий пост)GET /posts/:id
→posts#show
(Показати конкретний пост)GET /posts/:id/edit
→posts#edit
(Показати форму для редагування поста)PATCH/PUT /posts/:id
→posts#update
(Оновити пост)DELETE /posts/:id
→posts#destroy
(Видалити пост)
5. Параметри та динамічні маршрути
Маршрути Rails можуть приймати динамічні параметри з URL. Наприклад, при відображенні конкретного поста, ID поста можна передати через URL.
get 'posts/:id', to: 'posts#show'
У цьому прикладі :id
— це динамічний параметр. Коли користувач відвідує /posts/1
, Rails передасть id
(в цьому випадку 1
) до дії posts#show
, що дозволить відобразити відповідний пост.
6. Перегляд маршрутів
Rails надає команду для перегляду всіх маршрутів вашого додатку. Ви можете використати команду rails routes
, щоб побачити всі визначені маршрути та відповідні дії контролерів.
Приклад:
$ rails routes
Висновок
Маршрути Rails відіграють важливу роль у керуванні URL вашого додатку та перенаправленні запитів до відповідних дій. Правильне визначення маршрутів гарантує, що користувачі зможуть переміщатися по вашому додатку та взаємодіяти з даними. Як тільки ви освоїте основи, ви зможете досліджувати більш складні конфігурації маршрутів у Rails.
Перекладено з: What are Ruby on Rails Routes?