有没有办法让redirect_to成为多个网站?目前我正在redirect_to @sale.url
,但我可以同时在新窗口中redirect_to :back
吗?
非常感谢每一个解决方案(即使是肮脏的解决方案;))
谢谢!
答案 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