Réponses:
Le target: :_blank
paramètre doit être un paramètre de link_to
, alors que vous le mettez dans image_tag
paramètres. Modifiez votre code comme ceci:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank %>
Ou avec un bloc:
<%= link_to "http://www.facebook.com/mypage", target: :_blank do %>
<%= image_tag("facebook.png", class: :facebook_icon, alt: "Facebook") %>
<% end %>
Essaye ça:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
Vous pouvez également utiliser à la target: :_blank
place 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 vous cherchez comment ouvrir un lien dans un nouvel onglet dans html (pour quiconque est venu ici de Google), ici:
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
target: :_blank
signifie.
Ma compréhension est la suivante: vous pouvez demander au navigateur d'ouvrir un nouvel onglet ou un nouveau site. Mais cela dépend des paramètres utilisateur. Je considère que cette question a répondu.
Sauf que je suis tombé dans un piège lorsqu'il est nécessaire de séparer les options de lien des options html:
link_to(name = nil, options = nil, html_options = nil, &block)
Exemple:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
Pour compléter la réponse précédente, le format ci-dessous est celui proposé par rubocop. Cela peut être un risque pour la sécurité car la page chargée aura le contrôle sur la page précédente et pourrait changer son emplacement à des fins de phishing.
Pour éviter cela, il faut ajouter l'attribut «rel» au code.
rel: 'noopener'
Maintenant, le link_to devrait être:
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>