2013-12-02 3 views
1

У меня есть действие индекса пользователей, которое направляет человека на разные страницы в зависимости от параметров. В настоящее время, когда пользователь проходит в параметрах поиска, и я визуализирую шаблон пользовательского представления, когда человек нажимает на пользователя, он переходит на страницу редактирования своего пользователя. Я хочу, чтобы кнопка «Назад» в браузере возвращалась к пользовательскому представлению, если это то, откуда пришел пользователь. Тем не менее, он постоянно возвращается к индексу пользователей.Rails: Управление кнопкой браузера назад

Что я должен делать, чтобы кнопка возврата браузера вернулась к последней странице, с которой пришел пользователь?

Мой код контроллера:

def index 
    @criteria = params[:criteria] 
    respond_to do |format| 
    format.js { 
     unless @criteria.blank? || @criteria.length < 3 
     @results = fire(@criteria) 
     render :template =>'admin/users/search_user', :object => @results, :locals => { :autocomplete => true, :criteria => @criteria } 
     else 
     @users = User.paginate :page => params[:page], :order => "users.created_at desc" 
     render :template =>'admin/users/users', :object => @users, :locals => { :autocomplete => true, :criteria => @criteria } 
     end 
    } 
    format.html { 
     @users = User.paginate :page => params[:page], :order => "users.created_at desc" 
    } 
    end 
end 

Это мое понимание потока:

  1. пользователь нажимает на пользователей ссылаются
  2. маршрутов по умолчанию для пользователей индекса
  3. нагрузок действий данные и оформление шаблона
  4. template дисплеи
  5. типы пользователей в поиске Params
  6. форма HTML делает поиск термин идти в critera, который идет в Params
  7. входят по умолчанию из браузера представляет
  8. представить указывает на то же действие с Там нет пользовательских маршрутов?
  9. поскольку Params имеет критерии, результаты поиска/рендеринг шаблона
  10. нажмите на пользователе, приведет вас к пользователю редактировать
  11. нажмите кнопку назад в браузере, браузер знает список страниц, чтобы быть индексом пользователей, как последняя остановка после поиска результаты не являются отдельным URL-адресом, а HTML отображается с помощью Javascript?
  12. нужно получить браузер для перенаправления на шаблон результатов поиска как-то

Спасибо!

+0

Не могли бы вы добавить свой код контроллера? – dennis

+0

добавлено в вышеуказанное – BC00

ответ

1

Не уверен, если я вас правильно понимаю, но это может решить вашу проблему, возможно,

<%= link_to "Back", :back %> 
+1

Этот метод требует установки значения request.env ["HTTP_REFERER"]. Мне лично не нравится это поведение, поскольку каждое действие не должно иметь зависимостей, кроме случаев, когда вы выполняете действия с членами ресурса. – dennis

0

То, что вы описываете в основном дружественные переадресации. Вы не можете изменить поведение браузера по умолчанию в этом случае (если вы не хотите, чтобы спуститься глубоко в кроличьей норе в JavaScript), но вы могли бы достичь чего-то дружественный к пользователю, следуя ту же схему к этому:

http://ruby.railstutorial.org/chapters/updating-showing-and-deleting-users#sec-friendly_forwarding

Надеюсь, что это поможет.

2

Попробуйте <%= link_to 'Back', 'javascript:history.go(-1);' %>. Это даст вам точно такую ​​же функциональность, как и кнопка возврата браузера.

Смежные вопросы