Відповіді:
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 %>
Спробуйте це:
<%= link_to image_tag("facebook.png", :class => "facebook_icon", :alt => "Facebook"), "http://www.facebook.com/mypage", :target => "_blank" %>
Ви також можете використовувати 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 %>