Ruby on rails 3 Rails 3应用程序在以下情况下抛出错误;接受:无”;传递HTTP头
当某些浏览器请求我们的网站,但指定了一个Ruby on rails 3 Rails 3应用程序在以下情况下抛出错误;接受:无”;传递HTTP头,ruby-on-rails-3,http-headers,mime-types,Ruby On Rails 3,Http Headers,Mime Types,当某些浏览器请求我们的网站,但指定了一个Accept:NoneHTTP头(看起来主要是移动的)时,我们看到了Airbrake异常。经过一系列研究,大多数面向消费者的应用程序似乎只是忽略了Accept HTTP头和send HTML,我们之前通过将其添加到mime\u types.rb文件中解决了这一问题 Mime::Type.register "none", :html 但后来我们的电子邮件开始以纯文本发送,我相信这是因为我们正在重新定义text/html的工作方式。是否有更好的解决方案,以便
Accept:None
HTTP头(看起来主要是移动的)时,我们看到了Airbrake异常。经过一系列研究,大多数面向消费者的应用程序似乎只是忽略了Accept HTTP头和send HTML,我们之前通过将其添加到mime\u types.rb
文件中解决了这一问题
Mime::Type.register "none", :html
但后来我们的电子邮件开始以纯文本发送,我相信这是因为我们正在重新定义text/html
的工作方式。是否有更好的解决方案,以便在有人发送Accept:None
标题时仍发送HTML
编辑:我忘了说,这是我运行rails c
时得到的,我想知道我是否在重新定义HTML
$ rails c
/1.9.3-p194/lib/ruby/gems/1.9.1/gems/actionpack-3.2.12/lib/action_dispatch/http/mime_type.rb:102: warning: already initialized constant HTML
试一试
它添加了“none”
作为html的mime\u type\u同义词
试试看
它添加了“none”
作为html的mime\u type\u同义词
另一个修复方法是在应用程序控制器的
之前添加以下
def fix_accept_headers_for_none
if request.formats.include?("none")
request.format = :html
end
end
另一个修复方法是在过滤器
之前将以下添加到应用程序控制器
def fix_accept_headers_for_none
if request.formats.include?("none")
request.format = :html
end
end
这实际上创建了一个警告,因为它在MimeType
中重新定义了HTML
常量。这实际上创建了一个警告,因为它在MimeType
中重新定义了HTML
常量