Ответ 1
В Rails 3 и ранее:
link_to_function "Back", "history.back()"
В Rails 4 этот метод удален. См. Комментарий Андреаса.
Можно ли активировать функцию "Назад" браузера с помощью ссылки "Назад"?
В Rails 3 и ранее:
link_to_function "Back", "history.back()"
В Rails 4 этот метод удален. См. Комментарий Андреаса.
Использование
<%= link_to 'Back', :back %>
Это указано в RDoc здесь
Это создает некоторый Javascript для перемещения назад. Я только что протестировал его, и он работает.
В 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>
сделала это отлично.
Вы можете использовать link_to("Hello", :back)
для генерации <a href="javascript:history.back()">Hello</a>
.
Это работает в Rails 5.1 вместе с Turbolinks.
link_to 'Back', 'javascript:history.back()'
Это будет работать аналогично кнопке браузера, попробуйте это
<%= link_to 'Back', 'javascript:history.go(-1);' %>
Обратите внимание на этот комментарий от пользователя rthbound! Как он отмечает, link_to
с символом :back
не всегда генерирует "реальное" событие назад, как если бы пользователь нажал на кнопку "Назад" браузеров. Это также может быть повторная передача действия, которое загрузило текущее представление.
Документация для Rails 4.2.6 говорит об этом link_to
и символе :back
:
Использование символа
:back
вместо хэша опций приведет к созданию ссылки на referrer (обратная ссылка JavaScript будет использоваться вместо реферера, если не будет существует).
Использование
link_to_function "Back", "history.back()"
похоже на то, как нажать кнопку "Назад" в браузере. Все введенные данные формы все еще существуют, когда вы вернетесь.
Если вам нравится, мне не нужно поведение 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 %>
в форме, например.
Вы можете использовать функцию js window.history.back()
= link_to 'Back', onclick: "window.history.back();"