我正在尝试在执行操作时打开一个页面。所以在我的控制器中我有以下内容:
class Controller < ApplicationController
require 'open-uri'
def action
open("http://www.google.com") #if i use this, it just goes to my action page
open("www.google.com") #if i use this, it gives the error
end
end
错误:
Errno::ENOENT in Controller#action
No such file or directory - www.google.com
我发现的所有解决方案都说包括要求&open-uri&#39;我相信我做过。我在这里做错了什么?
编辑:
对不起我应该更清楚了。我可能必须在新标签页中打开多个页面,这就是为什么我决定使用open而不是redirect_to。例如:
class Controller < ApplicationController
require 'open-uri'
def action
open("http://www.google.com")
open("http://www.yahoo.com")
end
end
这样做会打开google.com和yahoo.com。
答案 0 :(得分:2)
open
通常用于让您的服务器访问外部站点(并可能解析响应)。它不允许您重定向您的用户。要与客户端进行交互,您需要使用view + javascript。
<%= link_to @url, target: "_blank" %>
为您想要的每个页面,然后通过javascript自动点击它们。
有关详情,请参阅:How do I programmatically click a link with javascript?
如果用户未启用JS,则将链接显示为后备。另请参阅此问题:Ruby/Rails - Open a URL From The Controller In New Window
答案 1 :(得分:1)
你必须使用协议:
http://....