繁体   English   中英

使用Kaminari宝石跳转到页面

[英]Jump to page using Kaminari Gem

我试图在分页列表中的项目链接到后添加分页。 我似乎找不到找到解决办法或找到答案的方法。 我正在尝试在页面上显示图像列表,我要做的是,当单击图像时,用户将转到该单个图像页面,然后在页面上将有“下一个”链接到下一个列表中的图片。 因此,假设我有一个图像列表,依次显示[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

在相应的视图中我还需要什么?

您必须记住图像被随机排列的顺序。 您可以例如将其保存在会话中

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创建指向下一张图像的链接。 还有一些棘手的事情要做,例如@next_image_id如果是最后一张图像,应该是什么,依此类推,但这应该可以帮助您入门。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM