Что такое фильтры в контроллерах?ruby-49

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

Типы фильтров

1. Before Action

Выполняется перед выполнением действия контроллера:

class ArticlesController < ApplicationController
  before_action :set_article, only: [:show, :edit, :update, :destroy]

  def show
    # @article уже доступен благодаря фильтру
  end

  private

  def set_article
    @article = Article.find(params[:id])
  end
end

2. After Action

Выполняется после выполнения действия, но до отправки ответа клиенту:

after_action :log_response, only: [:create, :update, :destroy]

def log_response
  logger.info "Response: #{response.body}"
end

3. Around Action

Оборачивает выполнение действия, позволяя контроли