如何将rails部分渲染到新的浏览器选项卡中

时间:2015-12-03 18:09:32

标签: javascript jquery ruby-on-rails

如何将rails _partial.html.erb呈现到新的浏览器标签中?

让我解释一下:

我有一个Ruby on Rails MVC CRUD,在new.html.erb中有一个简单的表单,用户填写近25个字段并提交表单。

在控制器内部有一个创建方法,定义为将所有内容创建到数据库中,然后调用一种方法将此文档发送到打印机。

为了做到这一点,在创建方法中,它呈现了一个html模板视图,其中的内容是使用漂亮的html + css模板打印的很多变量......然后在文档就绪时它通过javascript调用window.print()。

它工作正常,但我想改变这种行为。我希望当new.html.erb提交表单时,活动标签会被重定向回文档索引(它对我来说还可以到达)和将要打印的文档,在新标签中打开渲染,重点突出。

目前的解决方案是:

def create
  ... # lots of commands here
  render partial: 'contracts/printer/contract_template'
end

我如何编码这最后的疑问:..." 将打印的文档,在新标签中打开渲染,重点突出。" ?

1 个答案:

答案 0 :(得分:1)

在表单中添加选项target="_blank",这样可以在新标签页上提交表单,并在该标签页上显示您在create方法中定义的内容。

然后编写脚本以侦听该表单onSubmit,然后将当前页面重定向到索引。

$('#your-form-id').submit(function() {
    window.location.href = "YOUR_INDEX_PAGE";
});