2010-12-08 133 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是不是更好?