2005-09-01
[Rails] pagination (簡単なページ管理) を使ってみた
<URL:http://wota.jp/ac/?date=20050629#p01> を参考にして改造。
# controller def list @pages, @entries = paginate(:entry, :per_page => 30, :order_by => 'bakaid DESC') end
# view
<ul><% @entries.each do |entry| %>
<li><%= entry.month %>月<%= entry.day %>日…
<%= link_to(entry.title, {:action => "view", :id => entry}) %></li>
<% end %></ul>
<%= link_to "前を表示", { :page => @pages.current.previous } if @pages.current.previous %>
<%= link_to "次を表示", { :page => @pages.current.next } if @pages.current.next %>
mixi 日記風に改造。
def list
@pages, @entries = paginate(:entry, :per_page => 30, :order_by => 'bakaid DESC')
@begin_idx = @pages.items_per_page * @pages.current.previous.to_i
@end_idx = @pages.current.next ? @pages.items_per_page * (@pages.current.next.to_i - 1) :
@entries.size + @pages.items_per_page * @pages.current.previous.to_i
end
view にはこの一行を追加。
<%= "#{@begin_idx + 1}件〜#{@end_idx}件を表示" %>
動作サンプル (もう動いてないかも)。おぉ。