2010-12-08 160 views
2

我想在Rails3中使用AJAX調用生成PDF文件。以下代碼會生成一個使用PRAWN gem創建的PDF文件。使用AJAX調用生成PDF文件

<%= link_to "Generate pdf", books_path(@book, :format => 'pdf') %> 

我不希望用戶在訂購它之前查看PDF。所以,我們的目標是在服務器中創建一個PDF文件。

任何想法或想法,非常感謝。

+2

是什麼問題又來了? – edgerunner 2010-12-08 06:44:58

+0

再次閱讀上面的帖子... – safalmj 2010-12-09 03:27:37

回答

0

謝謝Ariejan。 我修改你的代碼如下,它只是做我想要的。

<%= link_to "Generate Story Book", pdfbook_stories_path(:format => 'pdf'), :remote => true %> 

和一個控制器,

def pdfbook 
    @stories = current_account.stories 
    respond_to do |format| 
     format.pdf {} 
    end 

1

使用此操作,確保您的遠程操作不返回PDF,但可以簡單地生成並將其存儲在服務器上。

link_to "Generate PDF", prepare_books_path(@book), :remote => true, :method => :put 

這將在Rails的3下工作。如果你使用jQuery,請務必閱讀如何正確設置的東西,this article

你的控制器動作可能是這樣的:

def prepare 
    # Do your thing to generate the PDF 
    render :text => "PDF Generated", :status => 200 
end 

我用PUT方法,因爲你改變你的數據的狀態(例如要生成新的東西,你不想要一個bot或爬行程序自動調用它)。

0

首先,它讓我不知道爲什麼當用戶不期待那個動作時,你會對生成PDF這樣的請求做些什麼。用戶請求時只生成pdf是不是更好?