Ruby/Rails - 在新窗口中从控制器打开URL

Chr*_*len 9 ruby ruby-on-rails ruby-on-rails-3

我在我的应用程序控制器中,我有一个url字符串.如何告诉应用程序在新窗口中打开浏览器中的URL.有没有办法将目标设置为空白?

例如

def link
  @url = 'www.google.com'
  ****??? Open @url ?? *** with target blank?
end
Run Code Online (Sandbox Code Playgroud)

Mad*_*bæk 11

这不可能直接来自控制器.使用redirect_to @url具有在同一"窗口"中打开URL的效果,因为它只是将HTTP重定向指令发送回浏览器.redirect_to无法打开新窗户.控制器驻留在服务器端,打开一个新窗口属于客户端.

一些选择:

一)渲染的链接与<%= link_to 'Google', 'google.com', :target => '_blank' %><a href="google.com" target="_blank">Google</a>用户可以在一个新视图点击

b)使用JavaScript自动打开链接,但要注意浏览器可能会将其视为弹出窗口并阻止它

通过组合这些选项,您可以在新窗口中为允许它的浏览器/用户打开链接,并在不起作用的情况下回退到常规URL.


Ale*_*tie 5

正如其他人指出的那样,您不能(也不应该)在控制器中执行此操作。在视图中,您可以使用

<%= link_to @url, :target => "_blank" %>
Run Code Online (Sandbox Code Playgroud)