Как открыть ссылку в новом окне с помощью ruby?

<li class="li_spacing"><%= button_to "Website", @restaurant.website, :target => '_blank', :class => "btn btn-primary" %></li>

Все работает кроме :target => '_blank', Почему это не делает ссылку на новую страницу?

3 ответа

Меняться от button_to к link_to:

<%= link_to "Website", @restaurant.website, target: "_blank" %>

button_to генерируется внутри формы, если вы все еще хотите ее использовать:

button_to "Website", @restaurant.website, class: 'btn btn-primary', form: {target: '_blank'}

Распространенным способом открыть ссылку в новом окне было добавить target="_blank" на тег ссылки.

Но по соображениям безопасности это не должно быть сделано больше. Рекомендуется использовать rel=noreferrer вместо:

link_to 'title', url, rel: 'noreferrer'

Или как кнопка:

button_to 'title', url, form: { rel: 'noreferrer' } 

Если вы используете button_to помощник, то он автоматически оборачивается в форму с помощью рельсов. Итак, что вы можете сделать, это передать атрибут target: '_blank' как:

button_to "Website", @restaurant.website, class: 'btn btn-primary', form: {target: '_blank'}
Другие вопросы по тегам