在控制層,分頁(yè)必須按如下代碼實(shí)現(xiàn):
def user_list @user_pages, @users = paginate(:users, :order_by => 'name') end |
以上代碼通過paginate方法設(shè)置的分頁(yè)器。這個(gè)方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是要讀取數(shù)據(jù)的表的名子,第二個(gè)參數(shù)是在取數(shù)據(jù)時(shí)要排序的字段。這個(gè)方法返回兩個(gè)對(duì)象,第一個(gè)對(duì)象@user_pages是分頁(yè)器對(duì)象, 第二個(gè)對(duì)象 @users 是每一頁(yè)的記錄數(shù)。其中@users用來(lái)向視圖提供要顯示的數(shù)據(jù)。 而@user_pages負(fù)責(zé)從表中得到數(shù)據(jù),然后將這些數(shù)據(jù)保存在@users中。
視圖層的實(shí)現(xiàn):
在視圖層的RHTML文件中,@users中的數(shù)據(jù)將被展現(xiàn)給用戶。pagination_links()方法可以實(shí)現(xiàn)導(dǎo)航的功能。以下是具體的實(shí)現(xiàn)代碼:
<table> <tr><th>姓名</th></tr> <% for user in @users %> <tr><td><%= user.name %></td> <% end %> </table> <hr> <%= pagination_links(@user_pages) %> <hr> |