我如何才能记住上一页的参数以便返回?

How can I remember a parameter from the previous page so I can go back to it?

我在想如何从单个列表页面返回到索引页面(与上一页)。它非常类似于 "go back" 函数。但我不想总是去第一页。

索引页面有页面参数。 localhost:3000/listings?page=2

但在每个列表中,URL 缺少页码信息。 localhost:3000/listings/1

我使用的是 rails 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'

我该怎么做?

一种方法是在会话中存储值

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。

如果用户 returns 稍后访问索引页面(没有显式页面参数)将从会话中检索值。