在我的申请中,我有Post
& Slide
个模型。 Post
有许多slides
。
目前,在我的posts#show
视图中,我会显示属于帖子的所有幻灯片。
如何每页只显示3 slides
并且下一个&上一页按钮到下一个组?
示例:帖子有 20张幻灯片,每个页面只显示3张幻灯片,下一个按钮显示下一个3等,例如,网址为{{ 1}},domain.com/p/posts-title/ps/1
等。
这就是我现在所做的:
domain.com/p/posts-title/ps/2
with_pagination
次操作
posts_controller
视图
with_pagination
路线中的
- @post.slides.order('sort_order ASC').each_slice(4) do |group|
控制器中的
resources :posts, path: 'p' do
get 'ps/:page', to: 'posts#with_pagination', as: :xyz
// i have other stuff here
end
现在我可以在该页面上显示所有幻灯片,但如上所述,我只想显示 3张幻灯片 pr页面,其中包含next和prev链接。
Ps:我以前遇到过几乎相同的问题,但它并没有同样的工作,因为其他人使用分页和分页不是我想要的
答案 0 :(得分:0)
在您的控制器上
def with_pagination
@post = Post.find_by_slug(params[:post_id])
@slides = @post.slides.order('sort_order ASC').page(params[:page]).per(3)
end
在视图
上- @slides.each do |slide|
答案 1 :(得分:0)
您可以使用可用于分页功能的“will_paginate”gem。
在您的gem文件中添加gem “will_paginate”并运行捆绑安装
在控制器中写下
@slides = @ post.slides.paginate(:page => params [:page],:per_page => 3)。order('sort_order ASC')
在视图页面
*- @slides.each do |slide|
......
end
= will_paginate @slides*
为了更好地理解,请点击“https://github.com/mislav/will_paginate”