web-dev-qa-db-ja.com

Rails:新しいタブでリンクを開く(「link_to」を使用)

私はこのコードを持っています:

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

ユーザーがリンクをクリックしたときに新しいタブで開くにはどうすればよいですか?

134
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

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オプションから分離する必要があるときに私がtrapに陥ったことを除いて:

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

例:

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