使用 Kaminari 跳转到页面 Gem

Jump to page using Kaminari Gem

我正在尝试在 link 编辑分页列表中的项目后添加分页。我似乎找不到办法做到这一点或找到答案。我想在页面上显示图像列表,我想做的是,当单击图像时,用户将转到该单独的图像页面,然后在该页面上会有 "Next" link 到列表中的下一个图像。 因此,假设我有一个按此顺序排列的图像列表 [1, 5, 3, 6, 4, 7, 8, 2, 9, 10 ] 每页显示 5 张。用户单击 ID 为 5 的图像(列表中的位置 1)并被带到“/images/5”。如何将 link 添加到此列表中的下一张图片 (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 为下一张图片创建 link。还有一些棘手的事情要做,例如。 G。如果是最后一张图片等等,@next_image_id 应该是什么,但这应该可以帮助您入门。