Действие браузера «Назад» в Ruby on Rails - PullRequest
53 голосов
/ 07 марта 2009

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

Ответы [ 10 ]

176 голосов
/ 07 марта 2009

Используйте

<%= link_to 'Back', :back %>

Это указано в RDoc здесь

Это генерирует некоторый Javascript для навигации назад. Я только что проверил, и это работает.

25 голосов
/ 07 марта 2009

В Rails 3 и ранее:

link_to_function "Back", "history.back()"

В Rails 4 этот метод был удален. Смотрите комментарий Андреаса.

10 голосов
/ 01 мая 2015

В Rails 4.2 я получил его для работы с этим:

<a href="javascript:history.back()">Refine Search</a>

Я украл это из ответа @ cpm , за исключением того, что link_to("Refine Search", :back) не выполнил работу, которую я хотел, в то время как вставка в сгенерированный код <a href="javascript:history.back()">Refine Search</a> сделала это отлично.

8 голосов
/ 06 октября 2017

Это работает в Rails 5.1 вместе с Turbolinks.

link_to 'Back', 'javascript:history.back()'
7 голосов
/ 07 марта 2009

Вы можете использовать link_to("Hello", :back) для генерации <a href="javascript:history.back()">Hello</a>.

2 голосов
/ 18 марта 2016

Обратите внимание на этот комментарий от пользователя rthbound ! Как он отмечает, link_to с символом :back не всегда генерирует «реальное» событие возврата, как если бы пользователь нажал кнопку «Назад» в браузере. Это также может быть повторная отправка действия, которое загрузило текущее представление.

Документация для Rails 4.2.6 говорит о link_to и символе :back:

Использование символа :back вместо хеша опций создаст ссылку на реферер (обратная ссылка JavaScript будет использоваться вместо реферера, если нет существует).

2 голосов
/ 30 июля 2015

Это будет работать так же, как кнопка браузера назад, попробуйте это

<%= link_to 'Back', 'javascript:history.go(-1);' %>

0 голосов
/ 11 мая 2017

Вы можете использовать функцию js window.history.back ()

 = link_to 'Back', onclick: "window.history.back();"
0 голосов
/ 18 октября 2016

Если вы, как я, не хотите, чтобы поведение 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 %> в форме, например.

0 голосов
/ 11 января 2013

Использование

link_to_function "Back", "history.back()"

похоже на нажатие кнопки назад в браузере. Все введенные данные формы все еще там, когда вы вернетесь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...