Ruby on Rails - 设置每页显示多少张图片
Ruby on Rails - Set how many image show per page
在我的应用程序中,我有 Post
和 Slide
个模型。 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/1
、domain.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 页面中嵌入以下代码
在我的应用程序中,我有 Post
和 Slide
个模型。 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/1
、domain.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 页面中嵌入以下代码