سؤال

ربما يكون هذا أكثر سؤالا أكثر تصميما أو استخداما ولكن المشكلة الرئيسية تستخدم البرنامج المساعد للجميدات مع القضبان 2.3.4 والوصول إلى كائن PDF الناتج لتقديمه إلى ملف.

السيناريو هو أساسا؛

  • وحدة تحكم مع إعداد كتلة Read_to
  • عرض مع رمز لتقديم النص والرسومات وغيرها إلى PDF

يبدو وكأنه:
من وحدة تحكم العملاء

def show    
    @customer = Customer.find(params[:id])  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
end

من عرض العملاء

  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

يعمل هذا بشكل جيد، وإنتاج ملف PDF استجابة ل / Customers/1.pdf، كما هو متوقع مع ملف PDF يتم إنشاؤه.

تتمثل إحدى المتطلبات الأخرى في تقديم PDF إلى ملف وتخزين نسخة على الخادم. يوفر الجمبري الطريقة:pdf.render_file {path_tofile}

حتى الآن إذا قمت بتضمين هذا في رمز العرض، يمكنني بالطبع احفظ الملف على الخادم. ولكن أود إدارة هذا في وحدة التحكم، حيث إنها مرتبطة بالمنطق، وليس العرض في حد ذاته.

كانت المحاولة الأولى:

def show    
   @customer = Customer.find(params[:id])
   @pdf = Prawn::Document.new()  

    respond_to do |format|
      format.html # show.html.erb
      format.xml  { render :xml => @customer }
      format.pdf  { render :layout => false  }
      pdf.render_file {path_to_file}
end

من عرض العملاء

  pdf.text "Hello World"  
  pdf.text "Customer is #{@customer.name}"

مشكلةالمشكلة في هذه المحاولة هي أن PDF لم يتم تقديمه. اشتبه في أن متغير مثيل وحدة التحكم هو اشتبك مع البرنامج المساعد الروبيان pdf عامل. ولكن حتى تغيير متغير PDF لم يعمل. أي اقتراحات ؟

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

المحلول

هذه هي الطريقة التي أستخدمها الجمبري في تطبيق القضبان الخاصة بي: http://yob.id.au/2009/05/30/Pridy-and-x-accel-Recrect.html. - لا يستخدم البربرية على الإطلاق.

يمكنك تجاهل الأشياء X-Accel - إعادة توجيه ما لم تستخدم Nginx.

بدلا من ذلك، وضعت واحدة أخرى من الجمبري Core Devs هذا الدليل: http://wiki.github.com/sandal/prawn/using-prawn-in-Rails.

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