2015-03-08 2 views
0

Я думал, как вернуться с отдельной страницы листинга на индексную страницу (с предыдущей страницы). Это очень похоже на функцию «вернуться». Но я не хочу всегда идти на первую страницу.Как я могу запомнить параметр с предыдущей страницы, чтобы я мог вернуться к нему?

У индексированной страницы есть параметр страницы. localhost: 3000/listings? Page = 2

Но внутри каждого листинга URL-адрес не содержит информации о номере страницы. LOCALHOST: 3000/списки/1

Я использую рельсы 4.1.8 и Kaminari 0.16.3

контроллер Список страница

def index 
    @listings = Listing.order("created_at DESC").page(params[:page]) 
    end 

индекс:

<%= paginate @listings %> 

Показать страницу частичный :

<%= link_to 'Back', root_path %> 

маршруты:

root 'listings#index' 

Как это сделать?

ответ

0

Один из способов сделать это путем сохранения значения в сессии

def index 
    if params[:page] 
    session[:listing_index_page] = params[:page] 
    end 
    @listings = Listing.order("created_at DESC").page(session[:listing_index_page]) 
end 

Если пользователь переходит listings/index в первый раз, то не будет страница паров и Kaminari должно взять на себя страницу 1. В дальнейшей навигации по страница 2 будет хранить 2 в сеансе.

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

+0

Thanks Messanjah! – nathanQQ

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