Ruby on Rails - 设置每页显示的图像数量

时间:2016-08-11 09:25:52

标签: ruby-on-rails ruby each

在我的申请中,我有Post& Slide个模型。 Post has many :slides,我使用nested_forms幻灯片添加到帖子中

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

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

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

示例:帖子有 20张幻灯片,每页设置 5张幻灯片。它每页只显示5张幻灯片,下一个按钮显示下一个5等,而网址例如为domain.com/posts-title/1domain.com/posts-title/2等。

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

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

1 个答案:

答案 0 :(得分:0)

  

gem' kaminari',' 0.16.3'

将set 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方法使用paginate

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

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

用于传递paginate方法,你需要在你的.erb页面中嵌入代码