首页 > 解决方案 > Ruby on Rails:在初始化程序中访问 ActionController::API 后没有 API 响应主体

问题描述

我正在尝试实现自定义日志记录 gem(主要基于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在初始化程序中访问,所有响应都有一个空主体。

标签: ruby-on-railsrubyactioncontroller

解决方案


推荐阅读