2013-05-28 29 views
11

Câu hỏi Tôi có nghĩa là, không Ruby on Rails có một chức năng tương tự như:Rails: làm thế nào để có được một phần mở rộng tập tin/postfix dựa trên loại mime

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

rằng sẽ trở lại với phần mở rộng tập tin hoặc postfix cho một loại mime cụ thể? Vì vậy, nếu tôi chuyển vào 'image/jpeg', hàm sẽ trả về 'jpg'

Tìm cách viết mã rõ ràng hơn là viết một tuyên bố tình huống thực hiện cùng một công việc.

Trả lời

29

Rack::Mime có khả năng này (và Kệ là một sự phụ thuộc của Rails):

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

Bạn có thể muốn memoize băm đảo ngược nếu bạn đang đi để làm tra cứu thường xuyên, vì nó không phải là một hoạt động không tốn kém .

+0

Thật tuyệt, tôi sẽ thử xem – LorneCurrie

+0

Công việc đó chính xác như tôi cần. Cảm ơn. – LorneCurrie

Các vấn đề liên quan