Respuestas:
El target: :_blank
parámetro debe ser un parámetro de link_to
, mientras que lo pones en image_tag
parámetros. Modifique su código así:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>
O con un bloque:
<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
<%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>
<% end %>
Prueba esto:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
También puedes usar en target: :_blank
lugar 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 %>
Si está buscando cómo abrir un enlace en una nueva pestaña dentro de html (para cualquiera que haya venido desde Google), aquí:
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
target: :_blank
significa.
Mi entendimiento es: puede pedirle al navegador que abra una nueva pestaña o un nuevo sitio. Pero esto depende de la configuración del usuario. Considero esta pregunta respondida.
Excepto que caí en una trampa cuando es necesario separar las opciones de enlace de las opciones html:
link_to(name = nil, options = nil, html_options = nil, &block)
Ejemplo:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
Para agregar a la respuesta anterior, el formato a continuación es lo que sugiere rubocop. Esto puede ser un riesgo de seguridad, ya que la página cargada tendrá control sobre la página anterior y podría cambiar su ubicación con fines de phishing.
Para evitar esto, es necesario agregar el atributo 'rel' al código.
rel: 'noopener'
Ahora el link_to debería ser:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>