Rails + Hotwire: Почему моя ссылка исчезает, когда я нажимаю на нее?
Я пытаюсь включить 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 без одного из вышеперечисленных атрибутов будет обрабатываться Turbo по умолчанию.