Rails:redirect_to超过1页

时间:2015-12-23 10:24:30

标签: ruby-on-rails

有没有办法让redirect_to成为多个网站?目前我正在redirect_to @sale.url,但我可以同时在新窗口中redirect_to :back吗?

非常感谢每一个解决方案(即使是肮脏的解决方案;))

谢谢!

3 个答案:

答案 0 :(得分:2)

Rails(在服务器上)无法将浏览器重定向到多个位置:它会做出响应并且响应只能是一件事,而不是一次只有两件事。

但是,页面上的javascript可以在新标签页中打开一个位置,并且rails可以编写javascript,这些javascript将在页面加载时运行,或者在提交表单之前运行。因此,您可以在提交表单或单击链接时在新选项卡中打开位置,然后让rails重定向当前选项卡。这可能是一件奇怪的事情,并且通常与可怕的广告弹出相关联,例如当你使用一些洪流网站时,它会在你做某事时打开赌博/中国妻子标签。

所以,你可能真的不想这样做。如果你解释一下你想要做什么的背景,那么有人可能会提出一个更好的方法来解决问题。

答案 1 :(得分:1)

您可以一次只重定向到1个URL,但是您可以添加一些javascript到索引文件以打开您想要的第二个窗口,这里我们也从同一控制器传递URL,您可以将URL更改为任何您想要,甚至是本地网址:

# sales_controller.rb
def create
  .....
  @new_window_url = "http://google.com"
  redirect_to sales_path
end

# sales/index.html.erb
<javascript> 
  window.open("#{@new_window_url}");
</javascript> 

答案 2 :(得分:0)

在同一条件下,无法将redirect_to重定向到同一动作的不同地址。

你可以根据不同的条件重定向。如果基于编码, 否则你会得到多个重定向错误。

address = redirect_address1
if some_condition
 address = redirect_address2
end
redirect_to address