首页 > 解决方案 > 为什么当 json 视图可用时 Rails 6.0.x 以 html 响应?

问题描述

json当接受标头为application/json, text/javascript, */*; q=0.01和时, Rails 5.2 将正确地以视图隐式响应X-Requested-With: XMLHttpRequest

在 Rails 6 中,html模板被渲染。解决方法是将其添加到控制器方法中:

def show
  ...
  respond_to :html, :json
end

我宁愿不这样做,因为 Rails 已经知道有一个show.html.erb和一个show.json.jbuilder视图可用。

有谁知道导致这种情况发生了什么变化,以及是否仍有可能实现隐式视图渲染?

标签: ruby-on-railsruby-on-rails-6

解决方案


这可以通过将其添加到您的config/initializers/mime_types.rb文件来解决:

Mime::Type.register "*/*", :all

这在 Rails 6.1 中也得到了修复。


推荐阅读