Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中对给定操作执行渲染和重定向_Ruby On Rails_Ruby On Rails 4_Prawn_Prawnto - Fatal编程技术网

Ruby on rails 如何在rails中对给定操作执行渲染和重定向

Ruby on rails 如何在rails中对给定操作执行渲染和重定向,ruby-on-rails,ruby-on-rails-4,prawn,prawnto,Ruby On Rails,Ruby On Rails 4,Prawn,Prawnto,我正在rails中开发一个应用程序,该应用程序需要以下内容: 单击按钮应首先下载pdf文件(渲染部分)并 然后重定向到显示页面(重定向到零件) 我在网上搜索发现,对于给定的操作,不可能同时渲染和重定向,有什么方法可以解决这个问题吗?使用渲染发送数据,因此在控制器中无法执行任何操作 为此,您必须使用javascript: 单击按钮时创建iframe。(这将保留您的下载过程) 在iframe的close事件上重定向页面 您也可以使用后台作业进行下载操作,但我还没有使用它。您可以将用户发送到结果页,并

我正在rails中开发一个应用程序,该应用程序需要以下内容:

  • 单击按钮应首先下载pdf文件(渲染部分)并
  • 然后重定向到显示页面(重定向到零件)

  • 我在网上搜索发现,对于给定的操作,不可能同时渲染和重定向,有什么方法可以解决这个问题吗?

    使用渲染发送数据,因此在控制器中无法执行任何操作

    为此,您必须使用javascript:

  • 单击按钮时创建iframe。(这将保留您的下载过程)

  • 在iframe的close事件上重定向页面


  • 您也可以使用后台作业进行下载操作,但我还没有使用它。

    您可以将用户发送到结果页,并添加元标记,以便在x秒后将用户重定向到下载

    <meta http-equiv="refresh" content="5; url=http://path_to/your/download.zip"/>
    
    
    

    这是你在许多网站上看到的方法,例如sourceforge.net(你的下载将在x秒后开始…

    你可以使用两个函数,一个用于渲染,另一个用于重定向。这是一种不好的方法,但是你可以使用
    如果(某件)渲染,则重定向到
    这东西更好地使用
    响应你要做的事| format | format.html{重定向到…}format.json{render@users}end
    这不仅仅是rails的限制-对于单个http请求,只能有一个响应iframe的关闭事件是什么意思?