使用Kaminari Gem跳转到页面

时间:2015-12-17 23:10:39

标签: ruby-on-rails ruby-on-rails-4 pagination kaminari

我试图在分页列表中的项目链接后添加分页。我似乎找不到办法做到这一点或找到答案。我试图在页面上显示图像列表,我想要做的是,当点击图像时,用户将转到该单个图像页面然后在页面上将会出现" Next&#34 ;链接到列表中的下一个图像。 所以,假设我按此顺序有一个图像列表[1, 5, 3, 6, 4, 7, 8, 2, 9, 10 ]每页显示5个。用户点击ID为5的图像(列表中的位置1)并转到' / images / 5'。如何添加链接到此列表中的下一个图像(id:3),依此类推?

在图像控制器中

def index
  @list = Images.first(10).shuffle
  @images = Kaminari.paginate_array(@list).page(params[:page]).per(5)
end

我在相应的观点中还需要什么?

1 个答案:

答案 0 :(得分:1)

你必须记住以前洗过图像的顺序。例如,您可以将其保存在会话中

def index
  @list = Images.first(10).shuffle
  session[:image_list] = @list.map(&:id)
  @images = Kaminari.paginate_array(@list).page(params[:page]).per(5)
end

然后在显示一个图像时,您可以在session[:image_list]中查找所显示图像的索引,并将下一个图像的id保存在实例变量中

def show
  idx = session[:image_list].index(shown_image_id)
  @next_image_id = session[:image_list][idx + 1]
  # Do some more stuff for showing image
end

然后使用@next_image_id创建指向下一张图像的链接。还有一些棘手的事情要做,e。 G。 @next_image_id应该是什么,如果它是最后一张图像等等,但这应该让你开始。