Фильтры (filters) в Rails — это методы, которые выполняются до, после или вокруг действий контроллера, обеспечивая переиспользуемую логику для обработки HTTP-запросов.
Выполняется перед выполнением действия контроллера:
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
Выполняется после выполнения действия, но до отправки ответа клиенту:
after_action :log_response, only: [:create, :update, :destroy]
def log_response
logger.info "Response: #{response.body}"
end
Оборачивает выполнение действия, позволяя контроли