Ruby on Rails - 设置每页显示多少张图片

Ruby on Rails - Set how many image show per page

在我的应用程序中,我有 PostSlide 个模型。 Post has many :slides,我使用 nested_forms 添加 幻灯片到 posts.

我现在拥有的是,在 post 页面上 我可以显示属于 post 的所有 slides

我用@post.slides.each do |slide|

通过使用 #each 我在同一页上显示所有幻灯片。我想要实现的是能够设置每页要显示多少 slides

示例:一个post有20张幻灯片,我设置5张幻灯片 每页。它每页只显示 5 张幻灯片,下一页按钮到下 5 张等等,URL 例如 domain.com/posts-title/1domain.com/posts-title/2 等。

(我已经有下一个按钮了)

非常感谢任何不使用分页的方法

gem 'kaminari', '0.16.3'

在您的控制器中为集合 set_peginate 定义一个 before_action。

  before_action :set_peginate

为 set_peginate

定义方法
  def set_peginate
    @per_page = params[:per_page].to_i <= 0 ? PER_PAGE : params[:per_page].to_i
    @page     = params[:page].to_i <= 0 ? 1 : params[:page].to_i
  end

您需要定义一个静态变量来设置默认的每页记录大小。

使用 kaminari 方法进行分页

 @slides = @post.slides.page(@page).per(@per_page)

现在您的视图将只获得 PER_PAGE 条记录 例如:PER_PAGE = 20

为了传递分页方法,您需要在 .erb 页面中嵌入以下代码