我正在尝试使用Rails3中的AJAX调用生成PDF文件。以下代码生成我使用PRAWN gem创建的PDF文件。
<%= link_to "Generate pdf", books_path(@book, :format => 'pdf') %>
我不希望用户在订购之前查看PDF。因此,目标是在服务器中创建PDF文件。
任何想法或想法都非常感激。
答案 0 :(得分: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方法,因为您正在改变数据的状态(例如,您正在生成新的内容,您不希望机器人或爬虫自动调用它)。
答案 1 :(得分:0)
首先,当用户不期望采取行动时,为什么你会在生成PDF等请求上做点什么,这让我很吃惊。在用户请求时只生成pdf不是更好吗?
答案 2 :(得分: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
端