2015-09-23 40 views
4

技術規格:ruby 2.1.5p273,Rails 4.2.3。當前頁面上的訪問集合對象w will_paginate

我正在使用will_paginate gem在頁面上分頁我的模型。是否可以訪問正在當前頁面上打印的模型的實例?

在項目控制器:

@paginate_projects = @projects.keys.paginate(:page => params[:page], :per_page => 7) 

使用撬,我可以得到:

$ @paginate_projects.current_page => 2 

我希望能夠做一些事情,如:提前

$ @paginate_projects.current_page.projects => [Project #8, Project #9, Project #10, Project #11, Project #12, Project #13, Project #14] 

謝謝尋求幫助。我也期待在這個: http://www.rubydoc.info/github/mislav/will_paginate/WillPaginate/Collection

+0

'paginate'方法從您的模型中返回一個'ActiveRecordRelation'。它就像一個可以遍歷和操作的對象的「數組」。沒有真正理解你的問題。 – MurifoX

+1

嗨@MurifoX,我想只能訪問current_page的那個對象數組。你知道該怎麼做嗎? – Brit200313

回答

-2

我從來沒有用過will_paginate寶石,但我相信@paginate_projects它是用一些其他方法項目的ActiveRecord的關係。

從鏈接您提供:

陣列從分頁的發現返回的,其實這 小類的實例。您可以將WillPaginate :: Collection視爲一個具有一些額外屬性的普通 數組。這些屬性被視圖 助手用來生成正確的頁面鏈接。

0

相反分頁上@projects.keys(我不知道這是什麼將返回),我建議直接分頁@projects(或可能Project)。

當您在模型或ActiveRecord集合或作用域上調用#paginate時,它僅返回該頁面的記錄。

比方說,在你的控制器,你這樣做:

@projects = Project.some_scope_or_query 
@paginate_projects = @projects.paginate(page: params[:page], per_page: 7) 

在你看來/模板時,@paginate_projects變量將包含的不僅是項目的當前頁面的價值。

就個人而言,我建議直接在模型上分頁,除非在控制器中進行特別複雜的邏輯。例如:

@projects = Project.some_scope_or_query 
        .paginate(page: params[:page], 
           per_page: 7) 

在您看來,您將使用@projects作爲您的記錄集合。

相關問題