Rails: Ouvrir le lien dans un nouvel onglet (avec ‘link_to’)

J’ai ce code:

 "facebook_icon", :alt => "Facebook", :target => "_blank"), "http://www.facebook.com/mypage" %> 

Comment puis-je l’ouvrir dans un nouvel onglet lorsqu’un utilisateur clique sur le lien?

Le paramètre target: :_blank doit être un paramètre de link_to , alors que vous le placez dans les parameters image_tag . 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 au lieu de la 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 %> 

Si vous cherchez comment ouvrir un lien dans un nouvel onglet au format HTML (pour quiconque vient de Google), cliquez ici:

 Link name 

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 parameters de l’utilisateur. Je considère que cette question a reçu une réponse.

Sauf que je suis tombé dans un piège quand 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' })