#ruby-on-rails #ruby #actioncontroller
#ruby-on-rails #ruby #actioncontroller
Вопрос:
Я пытаюсь реализовать пользовательский драгоценный камень ведения журнала (в значительной степени основанный на lograge).
В методе, который вызывается из инициализатора, у меня есть некоторая логика для добавления к полезной нагрузке, которая передается process_action.action_controller
событию, которая выглядит примерно так:
def self.add_custom_payload
base_classes = [ActionController::Base, ActionController::API]
base_classes.each do |base_class|
# logic that adds stuff to payload
end
end
После добавления этого, когда я делаю какие-либо запросы к своему API (приложение, которое я использую для тестирования этого, использует ActionController::API
), я всегда получаю пустое тело в ответ. Код состояния HTTP и заголовки соответствуют ожиданиям.
Я предположил, что это как-то связано с логикой, которую я использую для добавления материала в полезную нагрузку, но, оказывается, это не так. Даже если я удалю все остальное и буквально просто
def self.add_custom_payload
ActionController::API
end
в методе, который вызывается из инициализатора, происходит то же самое, и все запросы возвращают пустое тело ответа.
Я в тупике. Что является причиной этого?
TL; DR: если я обращаюсь ActionController::API
к инициализатору, все ответы имеют пустое тело.
Комментарии:
1. Любая причина, по которой вы не используете
append_info_to_payload
. api.rubyonrails.org/classes/ActionController /…2. Или просто создать часть промежуточного программного обеспечения и поместить его между маршрутизатором и контроллером.