ruby-on-rails - request.env ['CONTENT_TYPE' ] 和 request.content_type 是什么,为什么有区别?

标签 ruby-on-rails ruby-on-rails-3 content-type httprequest actiondispatch

我看到 request.env['CONTENT_TYPE']request.content_type 有两个不同的值。

我从一个单独的应用程序向我的 Rails 应用程序发送一个请求,并将 Content-Type 显式设置为 text/xml

这是我在另一端看到的,来 self 的 Rails 应用程序:

request.env['CONTENT_TYPE'] = "text/xml"
request.content_type = "application/xml"

request.content_type 其实就是action_dispatch.request.content_type

  1. request.env['CONTENT_TYPE']request.content_type 有什么区别?
  2. 为什么这两个值不同?

最佳答案

request.env 包含 Rack 对内容类型的“想法”。通常,这是您发出的请求的内容类型。

另一方面,

request.content_type 是 Rails 根据请求的格式对内容类型的解释。这些是在 Rails 中一个名为 mime_types.rb 的文件中定义的(我不记得是哪一部分,但是有了它你应该能够找到它),其他的可以在 中指定配置/初始化程序/mime_types.rb.

关于ruby-on-rails - request.env ['CONTENT_TYPE' ] 和 request.content_type 是什么,为什么有区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4860478/

相关文章:

seo - robots.txt 错误 : Content Type should be text/plain

ruby-on-rails - Asset Pipeline - 无法让我的 CSS 生效

ruby-on-rails - 生产环境缺少 secret_key_base - 在 heroku 上托管 rails 4.1.4 应用程序

ruby-on-rails-3 - 如何在 HAML 中使用 rails-i18n

ruby - 升级到 OSX 10.7.3 Lion 后修复 Postgresql

ruby-on-rails - 每次更改Rails代码时,我都必须重新启动Apache

ruby-on-rails - 为投票系统找出/重构这个 if/else

ruby-on-rails - 由于 DOTENV 未初始化常量错误,无法推送到 Heroku

postgresql - 在 postgres 请求中添加内容类型?

java - 如何在 Websphere Portal 上显示来自 Struts portlet 的 Excel 内容