• Увійти
  • Головна
  • FAQ
  • Увійти
Головна
Контролери | Ruby on Rails
anko20094
08.10.2023
lesson
newbie

Контролери | Ruby on Rails

Вступ до контролерів в Ruby on Rails

    Контролери в Ruby on Rails - це складова частина MVC (Model-View-Controller), архітектурного шаблону, що використовується для побудови веб-додатків. Вони відповідають за обробку вхідних запитів від користувачів та взаємодію з моделями та представленнями (виглядами). Контролери містять методи, які називаються «діями» (actions), і кожна дія обробляє певний тип запиту.

 

Створення контролерів у Rails

Генерація контролерів

Для створення контролерів у Rails використовується генератор. Він автоматично створить необхідні файли та структуру для вашого контролера. Команда для створення контролера має такий вигляд:

rails generate controller ControllerName

Замініть "ControllerName" на бажану назву вашого контролера.

 

Структура контролерів

Контролери зазвичай розташовуються в директорії «app/controllers» у вашому Rails проекті. Кожен контролер - це клас, що успадковується від класу ApplicationController. Наприклад:

class UsersController < ApplicationController
  # код контролера тут
end

 

Дії (Actions) контролерів

Основні дії контролерів

У контролерах можуть бути різні дії, які відповідають на різні запити від користувачів. Типові дії це, наприклад, index, show, new, edit, create, update, destroy та інші. Назви дій зазвичай використовуються у маршрутах (routes) для визначення, яка дія повинна бути виконана для конкретного URL.

 

Параметри дій

Дії контролерів можуть приймати параметри з URL. Наприклад, якщо ви маєте дію, яка приймає id користувача з URL, ви можете звернутись до цього параметра так:

class UsersController < ApplicationController
  def show
    user_id = params[:id]
    # зробіть щось з user_id
  end
end

 

Відповіді на дії

Кожна дія контролера повинна повертати відповідь на запит. Зазвичай це рендеринг представлення (вигляду), який відображає сторінку для користувача. Наприклад:

class UsersController < ApplicationController
  def index
    @users = User.all
    # рендеримо вигляд index
  end
end

 

Використання змінних у вигляді (Views)

Змінні, визначені у дії контролера, можуть бути використані у вигляді (представленні). Наприклад, якщо ми визначили змінну @users у дії index, ми можемо її вивести у вигляді index:

#/ app/views/users/index.slim
h1 Користувачі
ul
  - @users.each do |user|
    li = user.name

 

Фільтри контролерів

Фільтри дозволяють виконувати код перед або після виконання дій контролера. Наприклад, вам може знадобитись перевірити, чи користувач має права доступу до дій контролера перед виконанням дії. Фільтри допомагають зберегти код чистим та організованим.

Уявімо, що вам потрібно перевірити, чи користувач має право редагувати певний запис перед виконанням дії «edit»:

# app/controllers/posts_controller.rb
class PostsController < ApplicationController
  before_action :authorize_user, only: [:edit]

  def edit
    @post = Post.find(params[:id])
  end

  private

  def authorize_user
    # код перевірки прав доступу користувача тут
    # наприклад, перевірка, чи користувач є власником запису
    unless current_user && current_user == Post.find(params[:id]).user
      redirect_to root_path, alert: "Ви не маєте прав для редагування цього запису"
    end
  end
end

 

Ресурсні маршрути

У Ruby on Rails існує підхід, який називається «ресурсними маршрутами», який дозволяє створити стандартні маршрути для контролерів, які відповідають CRUD-операціям (створення, читання, оновлення, видалення) над ресурсами вашого додатку.

Для використання ресурсних маршрутів визначте маршрут у файлі «config/routes.rb» таким чином:

resources :controller_name

Замініть «controller_name» на назву вашого контролера. Наприклад, якщо у вас є контролер для користувачів (users), ви можете використовувати наступний код:

resources :users

Rails автоматично згенерує стандартні маршрути для цього контролера, що включають URL для списку користувачів, перегляду одного користувача, створення користувача, оновлення та видалення.

 

Висновки

Контролери в Ruby on Rails відіграють ключову роль у взаємодії з користувачем та обробці вхідних запитів. Вони дозволяють зберігати логіку взаємодії з даними в окремих компонентах, що робить ваш код більш організованим та легше зрозумілим.

 

У розділі про контролери ми розглянули створення контролерів, дії, параметри, використання змінних у виглядах, фільтри та ресурсні маршрути. Надіюсь, ця стаття допоможе вам легше зрозуміти та почуватись більш впевнено в розробці з використанням Ruby on Rails. Вивчайте далі та успіхів у вашому програмістському шляху! 😊

 

Схожі публікації

anko20094
26.09.2023

Моделі | Ruby on Rails

Основи моделей. Зв'язок між моделями. Валідація та колбеки

lesson
newbie
anko20094
04.12.2023

Шляхи | Ruby on Rails

Вступ до Шляхів (Routes) у Ruby on Rails

lesson
newbie
anko20094
19.09.2023

MVC | Ruby on Rails

Шаблон проектування MVC (Model-View-Controller)

newbie
lesson
  • Головна
  • FAQ

© 2025 Rubycoin