Rails中mime类型的处理是什么?

psc*_*egr 6 ruby-on-rails mime-types

我对在Rails中处理mime类型的不同模块的数量感到困惑.我想到的有三个,如果有人能为我理顺这一点,我将不胜感激.

1)Mime :: Type(用于respond_to)

Mime::Type.register "text/richtext", :rtf
Run Code Online (Sandbox Code Playgroud)

2)MIME :: Types(来自mime-types gem)

MIME::Types[/ogg/, :complete => true]
Run Code Online (Sandbox Code Playgroud)

3)Rack :: Mime :: MIME_TYPES(用于提供内容)

Rack::Mime::MIME_TYPES.merge!({".ogg" => "audio/ogg"})
Run Code Online (Sandbox Code Playgroud)

这三个是完全分开的还是它们之间有什么联系?维护3个不同的mime类型列表似乎很奇怪,但我猜他们的目的似乎是不相交的.

更具体地说,我应该如何知道哪些注册新类型?

谢谢!

Chr*_*ton 1

一些华而不实的答案......

Rails (1) 和 Rack (3) 是分开的,所以我想这解释了那里的分裂 - 并且希望在某个时候 Rails 将使用 Rack 一个,因为它是基于 Rack 的......

至于 (2),这似乎是一个用于识别文件类型的非 Rails/Rack 库 - http://mime-types.rubyforge.org/ - 所以也许理想的未来是基于 Rails 和 Rack关于这一点......虽然它现在看起来很旧(2009年)并且可能没有维护,因此缺乏使用......