Во-первых, немного предыстории, потому что происходит много взаимодействия: я беру электронные письма через Fetcher и обрабатываю их, используя MMS2R, чтобы извлечь вложения. Эти вложения обычно будут PDF-файлами или документами MS Word, поэтому можно ожидать, что их content-type
будет application/pdf
и application/msword
соответственно, но, к сожалению, многие почтовые программы этого не делают.
Вместо этого прикрепляются application/x-pdf
и application/x-doc
. Мне нужно, чтобы они были установлены правильно, чтобы scribd-fu правильно распаковывал документы. Теперь mimetype-fu сможет определить правильный тип контента, но на всю жизнь я могу просто выяснить, как правильно установить тип контента вложения paperclip.
Вот фрагмент кода:
mms.process do |media_type, files|
# go through each file
files.each do |filename|
# if it's a format we support, create a record
if media_type =~ /pdf/ # just pdfs for now, to reduce confusion
File.open(filename) do |tempfile|
# Somewhere in here I'd like to change filename.content_type
# to the proper type using mimetype-fu
# except doing tempfile.content_type = whatever doesn't seem to work.
thing = Thing.new
thing.document = tempfile
thing.save!
end
end
end
end
Буду признателен за любую помощь, потому что я бьюсь головой о стену, стараясь изо всех сил пытаться заставить это работать. Я уже пробовал эти ссылки либо безуспешно, либо без уловок, что нужно делать:
Большое спасибо!