我正在尋找與cancan分頁,但它不明顯如何將它與諸如will_paginate等寶石集成在一起。如何做cancan分頁?
理想情況下,康康的load_resource將委託給will_paginate並添加額外條件。例如在cancan中,我聲明瞭訪客用戶
can :read, Post, :published => true
並且這是由load_resource自動處理的。不過,我希望通過所有這些結果獲得will_paginate頁面。
任何想法。
問候
布拉德
我正在尋找與cancan分頁,但它不明顯如何將它與諸如will_paginate等寶石集成在一起。如何做cancan分頁?
理想情況下,康康的load_resource將委託給will_paginate並添加額外條件。例如在cancan中,我聲明瞭訪客用戶
can :read, Post, :published => true
並且這是由load_resource自動處理的。不過,我希望通過所有這些結果獲得will_paginate頁面。
任何想法。
問候
布拉德
這是簡單的在我的PostsController與雷https://github.com/amatsuda/kaminari做
我只是做
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
注意,雷正常工作與新的Rails3中ActiveRelation框架所以 可以將方法鏈接在一起來構建範圍。而且CanCan也是 ActiveRelation友好的,它們都鏈接在一起。
你也可以做這樣的事情:
class PostsController
def index
@posts = @posts.page(params[:page])
...
是的,但後來好像什麼是可訪問的,康康舞套@posts到零和世界結束...或者是有另一種方式? – pitosalas 2013-01-29 21:28:26
這應該被避免,除非你想在分頁之前從數據庫中提取所有@posts。 – 2013-04-28 18:12:17