2013-05-28 26 views
11

Mam pytanie jest, czy Ruby on Rails posiada funkcję podobną do:Rails: jak uzyskać rozszerzenie pliku/postfix na podstawie typu MIME

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

że powróci rozszerzenie pliku lub postfix pod kątem konkretny typ mime? Więc jeśli przekażę "image/jpeg", funkcja zwróci "jpg"

Szuka czystszego sposobu kodowania niż konieczności napisania instrukcji case, która wykonuje to samo zadanie.

Odpowiedz

29

Rack::Mime ma tę zdolność (a Rack jest zależność Rails):

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

Możesz chcieć memoize odwróconą hash, jeśli masz zamiar zrobić odnośnika często, jak to nie jest tania eksploatacja .

+0

Fajnie, dam to spróbować – LorneCurrie

+0

Ta praca dokładnie tak, jak tego potrzebowałem. Dzięki. – LorneCurrie