我正在使用sinatra和小胡子来构建应用程序。我想在页面上显示最多30个项目。我在想will_paginate gem,但似乎很复杂。有没有更简单的方法呢?这是我对links.rb的看法:
module S
class App
module Views
class AdminLinks < Layout
def links_all
Links.all.map do |s|
{
:name => s.name,
:comments_num => s.comments.count,
:user_name => s.user ? s.user.name : "" ,
:created_at => s.created_at.to_formatted_s(:db) ,
:user_id => s.user ? s.user.id : "" ,
:streme_id => s.id,
}
end
end
end
end
end
end
我想知道如何使用:Links.limit(5).offset(5)
答案 0 :(得分:1)
对于裸骨分页,您可以使用
# in controller
@page = params[:page] ? 1 : params[:page].to_i
# in model
def links_all(page)
per_page = 30
Links.limit(per_page).offset( (page - 1) * per_page ).all.map do |s|
{
:name => s.name,
:comments_num => s.comments.count,
:user_name => s.user ? s.user.name : "" ,
:created_at => s.created_at.to_formatted_s(:db) ,
:user_id => s.user ? s.user.id : "" ,
:streme_id => s.id,
}
end
end
# in view (replace links_path with your path helper
<%= link_to "Previous Page", links_path(:page => @page - 1 ) if @page > 1 %>
<%= link_to "Next Page", links_path(:page => @page + 1 ) %>