Ruby 在 Rails - 只显示 3 个图像 pr 页面
Ruby on Rails - Show only 3 image pr page
在我的应用程序中,我有 Post
和 Slide
个模型。一个Post
有很多slides
.
目前,在我的 posts#show
视图中,我显示属于 post 的所有幻灯片。
我怎样才能每页只显示 3 slides
并且有一个 下一个和上一个 按钮到下一个 组 ?
示例: A post 有 20 张幻灯片,它每页只显示 3 张幻灯片,并带有下一步按钮接下来的 3 等等 URL 例如 domain.com/p/posts-title/ps/1
、domain.com/p/posts-title/ps/2
等等
这是我现在所做的:
- 在
posts_controller
中创建了 with_pagination
操作
- 已将其添加到我的路线
- 创建了
with_pagination
视图
在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
在控制器中
def with_pagination
@post = Post.find_by_slug(params[:post_id])
end
现在我可以显示该页面上的所有幻灯片,但如前所述,我只想显示 3 张幻灯片 pr 页面,其中包含下一页和上一页 link .
Ps:我以前也遇到过几乎相同的问题,但它的工作原理不同,因为另一个问题使用了分页,而分页不是我要找的
在你的控制器上
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|
您可以使用 "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”
在我的应用程序中,我有 Post
和 Slide
个模型。一个Post
有很多slides
.
目前,在我的 posts#show
视图中,我显示属于 post 的所有幻灯片。
我怎样才能每页只显示 3 slides
并且有一个 下一个和上一个 按钮到下一个 组 ?
示例: A post 有 20 张幻灯片,它每页只显示 3 张幻灯片,并带有下一步按钮接下来的 3 等等 URL 例如 domain.com/p/posts-title/ps/1
、domain.com/p/posts-title/ps/2
等等
这是我现在所做的:
- 在
posts_controller
中创建了 - 已将其添加到我的路线
- 创建了
with_pagination
视图
with_pagination
操作
在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
在控制器中
def with_pagination
@post = Post.find_by_slug(params[:post_id])
end
现在我可以显示该页面上的所有幻灯片,但如前所述,我只想显示 3 张幻灯片 pr 页面,其中包含下一页和上一页 link .
Ps:我以前也遇到过几乎相同的问题,但它的工作原理不同,因为另一个问题使用了分页,而分页不是我要找的
在你的控制器上
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|
您可以使用 "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”