怎么做康康的分页?

bra*_*ing 6 pagination ruby-on-rails cancan

我想用cancan进行分页但是如何将它与诸如will_paginate之类的宝石进行整合并不明显.

理想情况下,cancan的load_resource将委托给will_paginate并添加额外条件.例如在cancan中我已经声明了访客用户

can :read, Post, :published => true
Run Code Online (Sandbox Code Playgroud)

这由load_resource自动处理.但是,我想在所有这些结果中使用will_paginate页面.

有任何想法吗.

问候

布拉德

bra*_*ing 10

这与kaminari https://github.com/amatsuda/kaminari很简单

在我的PostsController中,我就是这么做的

  before_filter :load_by_pagination, :only => :index
  def load_by_pagination
    @posts = Post.accessible_by(current_ability).order("published_date desc").page params[:page]
  end 
Run Code Online (Sandbox Code Playgroud)

请注意,kaminari可以与新的rails3 ActiveRelation框架一起正常工作,因此可以将方法链接在一起以构建范围.而CanCan也是ActiveRelation友好的,他们俩只是联系在一起.


ton*_*all 6

你也可以这样做:

class PostsController 

  def index
    @posts = @posts.page(params[:page])     
  ...
Run Code Online (Sandbox Code Playgroud)