Как реализовать Обратную ссылку на страницу, с которой приходит - PullRequest
0 голосов
/ 23 марта 2012

У меня есть приложение с ассоциациями и я буду разбивать страницы на страницы.

На странице индекса из основного объекта "cat_list" отображаются ссылки на ассоциацию "data_lists". Страница индекса также имеет нумерацию страниц с помощью will_paginate

  1. Я показываю, например, page = 3 "/ cat_lists? Page = 3"
  2. Я нажимаю на ссылку "data_lists", например, "/ cat_lists / 8984 / data_lists"

На этой странице указателя отображается список списков данных с правкой, уничтожением и новой ссылкой. И обратная ссылка на страницу индекса cat_lists теперь "/ cat_lists"

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

Ответы [ 3 ]

5 голосов
/ 23 марта 2012

Обычно я записываю историю в сеансе, а затем вызываю ее через redirect_to back (без двоеточия)

def index
  ... do your stuff ...
  record_history
end

protected

  def record_history
    session[:history] ||= []
    session[:history].push request.url
    session[:history] = session[:history].last(10) # limit the size to 10
  end

  def back
    session[:history].pop
  end

Обратите внимание, что это работает только для запросов GET.

2 голосов
/ 23 марта 2012

Если я вас правильно понимаю link_to('Back', :back) - это то, что вы хотите.

0 голосов
/ 28 августа 2012

Я также использую подход Моша.

link_to('Back', :back) использует только функции браузера «назад». Управление сервером истории дает вам больше контроля (то есть, если вы пришли из поиска в Google, угадайте, что происходит: назад). Управление сервером истории дает вам возможность скрыть ссылки, которые уберут пользователя с вашей страницы. Кроме того, вы можете предложить пользователю просмотреть несколько шагов назад - то есть через выпадающий список.

...