Rails3.0 + will_paginateでAjax

ブログ | 2010/12/11 01:38
Gemfile
gem 'will_paginate', '3.0.pre2', :require => 'will_paginate'
※requireがいるのかどうか試してない

bundle install

post.html.erb
<%= will_paginate @posts, :renderer => RemoteLinkRenderer %>

RemoteLinkRenderer.rbを作成
class RemoteLinkRenderer < WillPaginate::ViewHelpers::LinkRenderer
 private

 def link(text, target, attributes = {})
   if target.is_a? Fixnum
     attributes[:rel] = rel_value(target)
     target = url(target)
   end
   attributes[:href] = target
   attributes['data-remote'] = 'true'
   tag(:a, text, attributes)
 end
end
LinkRendererの内容に
attributes['data-remote'] = 'true'
を足しただけ。

これでとりあえずAjax遷移になった。
▼追記 2010/12/11 01:44
Controller内はRails2と似た感じだけど
Post.where(:category => params[:category]).paginate(:page => params[:page], :per_page => 9)
こんな風に書いてみたらあっさり成功した。
縮小 拡大

ログインしておくと、後で編集が可能です。

Rottel内コンテンツ

ユーザー一覧

Rottelとは?
利用規約
開発飲料
利用者の声
ヘルプ
close