2012-10-26 122 views
3

我從數據庫中獲取一些列在我的控制器與此查詢上的Ruby數組值:循環通過一個HTML頁面

@main = connection.execute("select code_ver, result from mastertest;") 

現在在我的html.erb,我顯示的結果這樣的表格:

<% @level1.each do |row1| %> 
<table id="tbl_main1" name="tbl_main1"> 
    <tr bgcolor="#D1D1D1"> 
     <td width="60%" <%= row1[0] %>></td> 
     <td width="20%"><%= row1[2] %></td> 
     <td width="20%"><%= row1[1] %></td> 
    </tr> 
</table> 

我在這裏讀取很多行。但是我想一次只顯示15個結果,並且有一些按鈕「下一個」和「上一個」,這些按鈕可以循環顯示結果。我會怎麼做?

+0

javascript分頁或'will_paginate'會做javascript分頁會節省一次又一次的請求服務器,反對'will_paginate' – Ratatouille

+0

@ user1438735:你能告訴我一些示例代碼嗎?謝謝 –

回答

1

我建議創建一個Active Record模型來表示mastertest數據庫表。然後,用will_paginate寶石的幫助下,你可以做你的控制器中的以下內容:

@mastertests = MasterTest.all.paginate(:page => params[:page], :per_page => 15) 

然後在您的視圖:

<% @mastertests.each do |mastertest| %> 
    <td><%= mastertest.code_ver %></td> 
    <td><%= mastertest.result %></td> 
<% end %> 
<%= will_paginate @mastertests %> 

will_paginate視圖助手會產生像[上一個分頁鏈接] [1] [2] [3] [下一頁]。看看github上的will_paginate gem以獲得更多選擇。

2

看看這個寶石https://github.com/mislav/will_paginate

Will_paginate可能是你在找什麼有用的。

還有其他的寶石,但我發現will_paginate滿足分頁需求。

編輯 如果您打算陣列上的分頁這就是它似乎你在幹什麼,你可以這樣做:

require 'will_paginate/array'

然後your_array.paginate page: x, per_page: y

X都將是頁你想顯示,y是每頁的項目數。

+0

我找不到任何代碼告訴我如何在執行sql2類型的查詢時使用分頁....你能幫我解決嗎? –

+0

你使用任何特定的框架或只是普通的紅寶石? –

+0

我正在使用Ruby on Rails。 –