我希望用cancan进行分页,但是如何将它与诸如will_paginate之类的宝石进行整合并不明显。
理想情况下,cancan的load_resource将委托给will_paginate并添加额外条件。例如在cancan中我已经声明了访客用户
can :read, Post, :published => true
这是由load_resource自动处理的。但是,我想在所有这些结果中使用will_paginate页面。
任何想法。
此致
布拉德
答案 0 :(得分: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
请注意,kaminari可以正常使用新的rails3 ActiveRelation框架 可以将方法链接在一起以构建范围。而CanCan也是 ActiveRelation友好,他们只是链接在一起。
答案 1 :(得分:6)
您也可以这样做:
class PostsController
def index
@posts = @posts.page(params[:page])
...