我试图在分页列表中的项目链接后添加分页。我似乎找不到办法做到这一点或找到答案。我试图在页面上显示图像列表,我想要做的是,当点击图像时,用户将转到该单个图像页面然后在页面上将会出现" 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
我在相应的观点中还需要什么?
答案 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
应该是什么,如果它是最后一张图像等等,但这应该让你开始。