#ruby-on-rails #hotwire-rails #turbo #turbo-frames
Вопрос:
Я пытаюсь включить Hotwire/Turbo в существующее приложение Rails. Я добавил турбо-кадры на простую страницу редактирования, но теперь, когда я нажимаю кнопку «Назад», она исчезает вместо того, чтобы перенести меня на целевую страницу. Ссылка очень проста link_to "Back", my_model_show_path(model_instance)
.
Я вижу, что сетевой запрос выполняется и выполняется успешно. Предварительный просмотр страницы на вкладке «Сеть» DevTools показывает правильную страницу, загружаемую и отображаемую в формате html. Браузер просто не переносит меня на новое место.
Как мне сделать так, чтобы это работало, как раньше? Я чувствую, что должен иметь возможность перенаправлять в любое место своего приложения с помощью обычных ссылок, даже если я использую Hotwire/Turbo.
Ответ №1:
Оказывается, есть три способа (по крайней мере) восстановить поведение ссылки по умолчанию.
1: Установите data-turbo
атрибут.
<%= link_to "Click Here", path_helper_method, data: { turbo: false } %>
(or in plain html)
<a href="" data-turbo="false">
2: Установите target
атрибут.
<%= link_to "Click Here", path_helper_method, target: "_top" %>
(or in plain html)
<a href="" target="_top">
- Переместите ссылку за пределы любого турбо-кадра. Любая ссылка внутри Турбо-фрейма, без одного из вышеперечисленных атрибутов, будет обрабатываться Turbo по умолчанию.