Как перенаправить на указатель со страницы после редактирования в Rails ActiveAdmin - PullRequest
0 голосов
/ 25 марта 2020

У меня есть клиент с сайтом Rails 6, на котором запущен ActiveAdmin, и клиент хотел бы вернуть пользователя обратно на страницу, на которой он или она находились в индексе, после выбора редактирования и обновления записи.

Например, если пользователь находится на странице /admin/employees?page=2 и щелкает ссылку «Изменить» для сотрудника, после обновления записи о сотруднике он хочет вернуться к /admin/employees?page=2

У меня есть как вернуть его обратно на страницу индекса вместо страницы показа, я просто не могу получить его на go назад на страницу, на которой он был.

Может кто-нибудь помочь?

1 Ответ

1 голос
/ 25 марта 2020

Если вы используете сеансы, то следуйте приведенным здесь советам:

Ссылка на страницу, посещенную до того, как форма

должна помочь. Чтобы применить его к active_admin, в вашем app/admin/employees.rb сначала сохраняйте последний URL каждый раз, когда вы нажимаете на страницу редактирования, а затем перенаправляйте на него после успешного обновления:

controller do
  def edit
    session[:my_previous_url] = URI(request.referer || '').path
    super
  end

  def update
    @employee.update(permitted_params[:employee])
    # check if the previous URL was correctly saved in session, if so use that, if not use employees index
    redirect_target = session[:my_previous_url].blank? ? employees_path : session[:my_previous_url]
    if @employee.save
      redirect_to redirect_target
    else
      render :edit
    end
  end
end
...