Rails 6.1 将 return Content-Type header 不加修改...改用 `#media_type`

Rails 6.1 will return Content-Type header without modification ... use `#media_type` instead

此弃用消息在引用此块时对我来说意味着什么?

def json_response(object, status = :ok)
  render json: object, status: status
end

编辑

留言:

Rails 6.1 will return Content-Type header without modification … use #media_type instead

您可以通过将此添加到您的 application.rb:

来消除警告
config.action_dispatch.return_only_media_type_on_content_type = false

如果您在代码中的任何地方使用 content_type,您需要确保在进行更改之前将其替换为 media_type。

我在将我的应用程序从 Rails 5.2.3 升级到 Rails 6.0.0-rc1

时收到相同的错误消息

config/application.rb

# this was the line before
# config.load_defaults 5.2
config.load_defaults 6.0

在我的例子中,我不得不将版本从 5.2 更改为 6.0

当我将我的应用程序从 Rails 5.2.4 升级到 Rails 6.0.2.1 时,我也收到了同样的错误消息。

对我来说,错误是由旧版本的 Turbolinks 引起的。

从 Turbolinks 5.1.0 升级到 5.2.1 使警告消失。

Rails 5.2 升级到 config.load_defaults 旁边的 Rails 6.0.3.1 后,user1722721 提到,我不得不将 config.autoloader = :classic 添加到 application.rb正确加载:

# config/application.rb
module YourAppName
  class Application < Rails::Application
    config.load_defaults 6.0
    config.autoloader = :classic
    # ...
  end
end