我在delayed_job gem的帮助下在后台生成xls文件。在此之后我想将文件发送给用户。有没有办法在delayed_job类的控制器外调用send_file方法?
答案 0 :(得分:4)
如果您要将任务设置为delayed_job,则用户的请求将不再存在。如果它仍然存在,那么你根本不需要完成任务(因为它违背了后台的整个目的)。
我的建议是在delayed_job生成文件时将文件保存到磁盘并附带相应的数据库记录。当用户等待时,让Ajax偶尔询问服务器文件是否准备就绪。准备好后,使用Ajax对文件发出新请求,显示下载链接或其他最佳效果。