При переходе в историю Turbolinks добавляет свои собственные данные к state
(то есть к первому аргументу history.pushState
. Затем он использует эти данные в событии popstate
для восстановления страницы.
Чтобы вручную перейти к истории в формате, понятном Turbolinks, вместо непосредственного вызова history.pushState
, вы можете добиться определенного успеха, используя следующее на шаге 2:
Turbolinks
.controller
.pushHistoryWithLocationAndRestorationIdentifier(PRODUCT_URL, Turbolinks.uuid())
Стоит отметить, что, хотя это публичный метод, он не документирован и поэтому может быть удален в будущих версиях. Однако, учитывая, что Turbolinks довольно стабилен, его использование должно быть достаточно безопасным.
Надеюсь, это поможет.