it-swarm.com.ru

Rails: открыть ссылку в новой вкладке (с 'link_to')

У меня есть этот код:

<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook", :target => "_blank"),                 
            "http://www.facebook.com/mypage" %>

Как я могу открыть его в новой вкладке, когда пользователь нажимает на ссылку?

133
Dantes

Параметр target: :_blank должен быть параметром link_to, тогда как вы помещаете его в параметры image_tag. Измените ваш код следующим образом:

<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>

Или с блоком:

<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
  <%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>     
<% end %>  
257
Baldrick

Попробуй это:

<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
14
Alexander Giraldo

Вы также можете использовать target: :_blank вместо target: '_blank'

<%= link_to image_tag("facebook.png", class: "facebook_icon", alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>

link_to do

<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
  <%= image_tag "facebook.png", class: "facebook_icon", alt: "Facebook" %>
<% end %>
8
Deepak Mahakale

Если вы ищете, как открыть ссылку в новой вкладке в HTML (для тех, кто пришел сюда из Google), здесь:

<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
3
funfuntime

Насколько я понимаю, вы можете попросить браузер открыть новую вкладку или новый сайт. Но это зависит от пользовательских настроек. Я считаю, что на этот вопрос ответили.

За исключением того, что я попал в ловушку, когда необходимо отделить параметры ссылки от параметров HTML:

link_to(name = nil, options = nil, html_options = nil, &block)

Пример:

link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
0
Manuel