Respostas:
O target: :_blank
parâmetro deve ser um parâmetro de link_to
, enquanto você o coloca em image_tag
parâmetros. Modifique seu código assim:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>
Ou com um bloco:
<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
<%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>
<% end %>
Tente o seguinte:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
Você também pode usar em target: :_blank
vez detarget: '_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 %>
Se você deseja saber como abrir um link em uma nova guia no html (para qualquer um que veio do Google), aqui:
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
target: :_blank
significa.
Meu entendimento é: você pode pedir ao navegador para abrir uma nova guia ou um novo site. Mas isso depende das configurações do usuário. Considero que esta pergunta foi respondida.
Exceto que caí em uma armadilha quando é necessário separar as opções de link das opções html:
link_to(name = nil, options = nil, html_options = nil, &block)
Exemplo:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
Para adicionar à resposta anterior, o formato abaixo é o que está sendo sugerido pelo rubocop. Isso pode ser um risco à segurança, pois a página carregada terá controle sobre a página anterior e poderá mudar sua localização para fins de phishing.
Para evitar isso, é necessário adicionar o atributo 'rel' ao código.
rel: 'noopener'
Agora o link_to deve ser:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>