Как вернуться на 2 уровня назад? - PullRequest
6 голосов
/ 06 января 2011

В виде списка моего приложения я могу просмотреть список записей или развернуть и отредактировать / обновить запись. После обновления я хочу вернуться обратно к списку, минуя пару промежуточных страниц - но я просто не хочу link_to(:action => list) - здесь используется разбиение на страницы. Я хочу вернуться к точной странице со списком, с которой я пришел. Какой лучший способ? Передать скрытый аргумент где-нибудь с номером страницы? Есть ли элегантный способ сделать это?

Ответы [ 2 ]

8 голосов
/ 06 января 2011

Я просто собираюсь выбросить это с отказом от ответственности, что могут быть соображения безопасности или существующие драгоценные камни.

Во время действия редактирования вы можете сохранить предыдущую страницу в сеансе.Затем в вашем действии обновления перенаправьте на него.

class MyController < ApplicationController

  def edit
    session[:prev_url] = request.referer
  end

  def update
    redirect_to session[:prev_url]
  end

end
2 голосов
/ 09 января 2011

В качестве альтернативы использованию сеанса вы можете проводить реферера через действия, используя скрытое поле формы.

class MyController < ApplicationController

  def edit
    @prev_url = request.referer
  end

  def update
    redirect_to params[:prev_url]
  end

end

Форма с использованием hidden_field :

f.hidden_field :prev_url, :value => @prev_url

Если вы не хотите переносить весь URL-адрес реферера, вы можете сделать то же самое с параметром страницы и добавить параметр к URL-адресу в действии update.Я также ожидал бы, что помощники Rails примут параметры.

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