Подтвердить что ты не робот

Действие "Назад" в Ruby on Rails

Можно ли активировать функцию "Назад" браузера с помощью ссылки "Назад"?

4b9b3361

Ответ 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();"