我用kaminari宝石进行分页。问题是,我需要在第一个页面上在4个元素之后分页,在25个元素之后对所有其他页面进行分页。可以配置kaminari来解决我的问题吗?下面是一个用法:
.pagination
.pagination__back
- if params[:page] && params[:page].to_i > 1
= link_to "Previous news", news_items_path(page: params[:page].to_i - 1)
- else
= ""
.pagination__forward
- if params[:page]
= link_to "Next news", news_items_path(page: params[:page].to_i + 1)
- else
= link_to "Next news", news_items_path(page: 2)发布于 2017-05-18 16:04:32
首先,可以省略与前页/前页相关的所有代码。Kaminari已经用它的助手解决了这个问题。为此,在视图中使用以下代码:
= paginate @your_resource这将呈现几个由?page=N标记包围的HTML5分页链接。(来源)
若要具有分页资源,需要向控制器添加以下代码:
@your_resource = YourResource.order(:foobar).page(params[:page])
# params[:page] will get added to each "paginated" request by Kaminari
# if you use its previously mentioned helper method.现在你想要一个动态限制。因此,我建议添加这样的内容:
def index
@your_resource = YourResource.order(:foobar).page(params[:page]).per(dynamic_limit(params[:page]))
end
private
def dynamic_limit(current_page = 1)
if current_page == 1
return 4
else
return 25
end
end这样,您将检查当前页面,如果是第一页,则将结果限制为4,否则为25。
https://stackoverflow.com/questions/44051988
复制相似问题