سؤال

أولاً، خلفية بسيطة، لأن هناك الكثير من التفاعل الجاري:أقوم باستلام رسائل البريد الإلكتروني عبر برنامج Fetcher، وأقوم بمعالجتها باستخدام MMS2R لاستخراج المرفقات.ستكون هذه المرفقات عمومًا عبارة عن ملفات PDF أو مستندات MS Word، لذا تتوقع أن تكون هذه المرفقات content-type سيكون application/pdf و application/msword على التوالي، ولكن للأسف يبدو أن العديد من برامج البريد لا تفعل ذلك.

بدلا من ذلك، المرفقات هي application/x-pdf و application/x-doc.أحتاج إلى ضبطها بشكل صحيح حتى يتمكن scribd-fu من طباعة المستندات بشكل صحيح.الآن، mimetype-fu سيتمكن من اكتشاف نوع المحتوى المناسب، لكن طوال حياتي، يمكنني فقط اكتشاف كيفية ضبط نوع المحتوى الخاص بمرفق مشبك الورق بشكل صحيح.

إليك مقتطف من الكود:

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

سيكون موضع تقدير أي مساعدة، لأنني كنت أضرب رأسي بالحائط وأحاول كل أنواع الأشياء لمحاولة تفعيل هذا الأمر.لقد جربت هذه الروابط بالفعل إما دون نجاح أو دون معرفة ما يجب القيام به:

شكرا جزيلا!

هل كانت مفيدة؟

المحلول

يمكنك أن تفعل فقط

thing.document_content_type = whatever

أم أنك تقوم بـ scribd-fu في document= أو شيء من هذا القبيل؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top