如何在不渲染此文件的情况下向客户发送文件(PDF、CSV 等)?
例如,想象一个学生控制器(使用脚手架创建),我们有“新”表单和“创建”操作:
def new
@student = Student.new
respond_to do |format|
format.html # new.html.erb
end
end
def create
@student = Student.new(params[:student])
respond_to do |format|
if @student.save
flash[:notice] = 'Student created'
format.html { redirect_to(@student) }
else
format.html { render :action => "new" }
end
end
end
成功创建学生后,它将重定向到“显示”模板。那没问题!但我需要发送给客户——例如——一个 PDF 文件,然后呈现“显示”动作。
此 PDF 文件就像客户的创建收据。
额外信息:现在使用 Prawn 制作 PDF 并通过如下代码发送给客户端:
respond_to do |format|
format.pdf { render :layout => false }
end
简而言之,我需要填写表格、创建学生、将 PDF 发送到浏览器(作为创建收据)并呈现“显示”操作以显示创建的学生。
非常感谢你。