首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确设置kaminari

如何正确设置kaminari
EN

Stack Overflow用户
提问于 2017-05-18 15:29:54
回答 1查看 273关注 0票数 0

我用kaminari宝石进行分页。问题是,我需要在第一个页面上在4个元素之后分页,在25个元素之后对所有其他页面进行分页。可以配置kaminari来解决我的问题吗?下面是一个用法:

代码语言:javascript
复制
.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)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-18 16:04:32

首先,可以省略与前页/前页相关的所有代码。Kaminari已经用它的助手解决了这个问题。为此,在视图中使用以下代码:

代码语言:javascript
复制
= paginate @your_resource

这将呈现几个由?page=N标记包围的HTML5分页链接。(来源)

若要具有分页资源,需要向控制器添加以下代码:

代码语言:javascript
复制
@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.

现在你想要一个动态限制。因此,我建议添加这样的内容:

代码语言:javascript
复制
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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44051988

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档