2013-05-28 34 views
11

問題我已經是得到一個文件的擴展名/後綴,不Ruby on Rails的具有類似的功能:Rails的:如何基於MIME類型

file_content_type = MIME::Types.type_for(file).first.content_type 

,將返回的文件擴展名或後綴爲特定的MIME類型?因此,如果我傳入'image/jpeg',函數將返回'jpg'

尋找一種更清晰的代碼方式,而不必編寫一個執行相同工作的case語句。

回答

29

Rack::Mime有這個能力(和機架導軌的依賴):

require 'rack/mime' 
Rack::Mime::MIME_TYPES.invert['image/jpeg'] #=> ".jpg" 

你不妨memoize的,如果你要經常做查找倒哈希值,因爲它不是一種廉價的操作。

+0

很酷,我會試試 – LorneCurrie

+0

這個工作就像我需要的一樣。謝謝。 – LorneCurrie