Можно ли активировать функцию "Назад" браузера с помощью ссылки "Назад"?
Действие "Назад" в Ruby on Rails
Ответ 1
В Rails 3 и ранее:
link_to_function "Back", "history.back()"
В Rails 4 этот метод удален. См. Комментарий Андреаса.
Ответ 2
Использование
<%= link_to 'Back', :back %>
Это указано в RDoc здесь
Это создает некоторый Javascript для перемещения назад. Я только что протестировал его, и он работает.
Ответ 3
В Rails 4.2 я получил это для работы с этим:
<a href="javascript:history.back()">Refine Search</a>
Я украл это с @cpms answer, за исключением того, что link_to("Refine Search", :back)
не выполнил задание, которое я хотел, пока вставка в сгенерированный код <a href="javascript:history.back()">Refine Search</a>
сделала это отлично.
Ответ 4
Вы можете использовать link_to("Hello", :back)
для генерации <a href="javascript:history.back()">Hello</a>
.
Ответ 5
Это работает в Rails 5.1 вместе с Turbolinks.
link_to 'Back', 'javascript:history.back()'
Ответ 6
Это будет работать аналогично кнопке браузера, попробуйте это
<%= link_to 'Back', 'javascript:history.go(-1);' %>
Ответ 7
Обратите внимание на этот комментарий от пользователя rthbound! Как он отмечает, link_to
с символом :back
не всегда генерирует "реальное" событие назад, как если бы пользователь нажал на кнопку "Назад" браузеров. Это также может быть повторная передача действия, которое загрузило текущее представление.
Документация для Rails 4.2.6 говорит об этом link_to
и символе :back
:
Использование символа
:back
вместо хэша опций приведет к созданию ссылки на referrer (обратная ссылка JavaScript будет использоваться вместо реферера, если не будет существует).
Ответ 8
Использование
link_to_function "Back", "history.back()"
похоже на то, как нажать кнопку "Назад" в браузере. Все введенные данные формы все еще существуют, когда вы вернетесь.
Ответ 9
Если вам нравится, мне не нужно поведение link_to "cancel", :back
, вы можете реализовать вспомогательный метод, который либо ссылается на путь индекса записи, либо путь к нему. (т.е. teams_path
или team_path(@team)
module CancelFormButtonHelper
def cancel_button(record)
index_path = record.class.to_s.pluralize.downcase + "_path"
path = record.persisted? ? record : eval(index_path)
link_to "Cancel", path
end
end
который затем может использоваться как <%= cancel_button @team %>
в форме, например.
Ответ 10
Вы можете использовать функцию js window.history.back()
= link_to 'Back', onclick: "window.history.back();"