2010-09-30 37 views
2
def index 
    @forms = Form.all 
    respond_to do |format| 
     format.html 
    end 
    end 
    def submit 
     respond_to do |format| 
     format.pdf {render } 

    end 
    end 

submit.pdf.prawn file 
pdf.text "successfully submitted" 
+1

需要比只能通過代碼更多的信息 – shingara 2010-09-30 07:34:52

+0

例如 - 告訴我們當您運行此代碼時會發生什麼 - 您是否收到錯誤消息?你有嘗試過別的嗎?這是如何解決的?你知道哪部分代碼會給你造成麻煩嗎?您是否錯過了一個您希望我們幫助爲您勾畫的概念? – 2012-08-21 02:09:16

回答

0

使用大蝦產生某處保存在/公共文件夾中的PDF格式,如:

Prawn::Document.generate("#{RAILS_ROOT}/public/pdfs/myfile.pdf") 

然後,只需用你的控制器將用戶重定向到該位置:

redirect_to '/pdfs/myfile.pdf' 
+0

使用蝦生成一個PDF保存在你的/公共文件夾的某處,如: Prawn :: Document.generate(「#{RAILS_ROOT} /public/pdfs/myfile.pdf」) 然後只需使用你的控制器重定向用戶訪問該位置: redirect_to'/pdfs/myfile.pdf' – zealmurugan 2010-10-04 05:33:13

+0

未知的操作 沒有任何操作對顯示做出響應。操作:current_user,current_user_session,generate,index,permission_denied,travel_log和unauthorised_url – zealmurugan 2010-10-04 05:34:04

+0

這個答案的問題是,如果應用程序由多個服務器提供服務,那麼響應重定向的服務器可能不是那個具有'/ pdfs'的服務器/myfile.pdf',所以用戶會得到一個404。 – sockmonk 2012-09-20 13:52:26

7

這是對蝦可以生成並返回PDF而不必在本地保存...

def submit 
    send_data(generate_pdf, :filename => "output.pdf", :type => "application/pdf") 
end 

private 
def generate_pdf 
    Prawn::Document.new do 
     text "Hello Stackoverflow" 
    end.render 
end 
相關問題