在我的申请中,我有Post
& Slide
个模型。 Post
has many :slides
,我使用nested_forms
将幻灯片添加到帖子中。
我现在拥有的是,在帖子页面我可以显示属于帖子的所有slides
。
我使用@post.slides.each do |slide|
使用#each
我在同一页面上显示所有幻灯片。我想要实现的是能够设置每页要显示的slides
个。
示例:帖子有 20张幻灯片,每页设置 5张幻灯片。它每页只显示5张幻灯片,下一个按钮显示下一个5等,而网址例如为domain.com/posts-title/1
,domain.com/posts-title/2
等。
(我已经有了下一个按钮)
非常感谢任何不使用分页的方法
答案 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页面中嵌入代码