[英]How to Use Rails will_paginate gem to Divide a Large Table for Print on a Single Page
我正在使用Ruby on Rails 3.1應用程序為客戶端制作一些可打印的表格,並且需要在每個頁面上重復表格標題。 不幸的是,目前, WebKit瀏覽器不支持基於CSS的解決方案。
為了解決這個問題,我想我會使用will_paginate gem。
控制者
def
@books = current_library.books.order('books.title ASC')
end
當前查看代碼
<% @books.each do |b| %>
<table>
<thead><th><%= b.title %></th></thead>
<tbody>
<% b.chapters.each do |chap| %
<td><%= chap.number %> ... <%= chap.name %></td>
<% end %>
</tbody>
</table>
<% end %>
如何設置頁面並逐步瀏覽每一頁? 換句話說,如何在一個視圖頁面上獲得所有分頁頁面?
另外,我應該追求更好的方法嗎?
您最好在此處使用Enumerable#each_slice
。 它允許您將大型可枚舉的對象拆分為一系列較小的切片,然后在這些切片上進行迭代。 這種事情非常好,不需要在循環中進行任何額外的數學運算,也不需要gem。
這是一個在頁面上包含10個項目的集合的示例:
<% @books.each_slice(10) do |slice| %>
<h1>Header Information</h1>
<h2>Awesome</h2>
<% slice.each do |book| %>
<table>
<thead><tr><th><%= book.title %></th></tr></thead>
<tbody>
<% book.chapters.each do |chap| %
<tr><td><%= chap.number %> ... <%= chap.name %></td></tr>
<% end %>
</tbody>
</table>
<% end %>
<p>Some footer information</p>
<% end %>
這種方法僅在假設每個書記錄占用大約相同的空間量(因此不會導致頁面過大或過小)的情況下起作用,但是will_paginate也將是一個問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.