답변:
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 %>
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 %>
html의 새 탭에서 링크를 여는 방법을 찾고 있다면 (Google에서 온 사람) 여기 :
<a href="http://www.facebook.com/mypage" target="_blank">Link name</a>
target: :_blank
의미 를 설명하는 데 유용 합니다.
내 이해는 : 브라우저에 새 탭이나 새 사이트를 열도록 요청할 수 있습니다. 그러나 이것은 사용자 설정에 따라 다릅니다. 이 질문에 대한 답변이 있다고 생각합니다.
링크 옵션을 html 옵션에서 분리해야 할 때 함정에 빠진 것을 제외하고는 :
link_to(name = nil, options = nil, html_options = nil, &block)
예:
link_to('Click me', { action: 'show', controller: 'blog', id: 1 }, { target: '_blank' })
이전 답변에 추가하기 위해 아래 형식은 rubocop에서 제안하는 것입니다. 로드 된 페이지가 이전 페이지를 제어하고 피싱 목적으로 위치를 변경할 수 있으므로 보안 상 위험 할 수 있습니다.
이를 방지하려면 'rel'속성을 코드에 추가해야합니다.
rel: 'noopener'
이제 link_to는 다음과 같아야합니다.
<%= link_to image_tag("facebook.png", class: :facebook_icon, alt: "Facebook"), "http://www.facebook.com/mypage", target: :_blank, rel: 'noopener %>