MIME::Types
承认txt
为text/plain
如何添加到扩展现有类型在Ruby的MIME类型::
require 'mime/types'
MIME::Types.type_for("txt").first.to_s # => "text/plain"
我想要它做同样的事情tab
,默认情况下
MIME::Types.type_for("tab").first.to_s # => ""
所以考虑到:
MIME::Types['text/plain'].first.extensions
为["txt", "asc", "c", "cc", "h", "hh", "cpp", "hpp", "dat", "hlp"]
,为什么没有了以下工作:
MIME::Types['text/plain'].first.extensions.push("tab")
MIME::Types.type_for("tab").first.to_s # => still just ""
非常感谢!那就是诀窍。 – sanichi
这是完美的,但不知道为什么要将其转换为哈希... 也适用于以下形式: text_plain = MIME :: Types ['text/plain']首先 text_plain.extensions <<'tab' MIME :: Types.add(text_plain) – iwiznia
@iwiznia,在我写这个问题时,这是不可能的(请参阅https://github.com/halostatue/mime-types/blob/master/History.rdoc中的历史记录 - - 你可以看到这个无散列方法直到2013-10-27才被引入,在我写这篇文章后将近2年)。但哈希方法在旧版本和新版本中都有效,所以我将答案保留为最高兼容性。谢谢你的提示。 –