Как интегрировать Paperclip и Mimetype-fu - PullRequest
0 голосов
/ 07 мая 2009

Во-первых, немного предыстории, потому что происходит много взаимодействия: я беру электронные письма через 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

Буду признателен за любую помощь, потому что я бьюсь головой о стену, стараясь изо всех сил пытаться заставить это работать. Я уже пробовал эти ссылки либо безуспешно, либо без уловок, что нужно делать:

Большое спасибо!

1 Ответ

1 голос
/ 08 мая 2009

Можете ли вы просто сделать

thing.document_content_type = whatever

или ты пишешь в документе = или что-то еще?

...