Skip to content

Instantly share code, notes, and snippets.

@thatfunkymunki
Forked from purcell/application_helper.rb
Created November 9, 2011 08:21
Show Gist options
  • Star 7 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save thatfunkymunki/1350826 to your computer and use it in GitHub Desktop.
Save thatfunkymunki/1350826 to your computer and use it in GitHub Desktop.
Make will_paginate generate HTML that bootstrap.less will render nicely, fixed for will_paginate 3.0.2
# Based on https://gist.github.com/1205828, in turn based on https://gist.github.com/1182136
class BootstrapLinkRenderer < ::WillPaginate::ActionView::LinkRenderer
protected
def html_container(html)
tag :div, tag(:ul, html), container_attributes
end
def page_number(page)
tag :li, link(page, page, :rel => rel_value(page)), :class => ('active' if page == current_page)
end
def gap
tag :li, link(super, '#'), :class => 'disabled'
end
def previous_or_next_page(page, text, classname)
tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ')
end
end
def page_navigation_links(pages)
will_paginate(pages, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapLinkRenderer, :previous_label => '&larr;'.html_safe, :next_label => '&rarr;'.html_safe)
end
@davidcole
Copy link

Perfect! Thanks so much!

@pplegend
Copy link

pplegend commented Jul 7, 2012

Hi, i put these code in application_helper.rb but get uninitialized constant WillPaginate::ActionView, what is wrong?

@freegenie
Copy link

Worked for me thanks.

@banesto
Copy link

banesto commented Jan 22, 2013

Thank you so much for this!

@rbrooks
Copy link

rbrooks commented Feb 8, 2013

@pplegend: Me too. This gist above is for will_paginate 3.0.2, not will_paginate 3.0.pre2. Check your gemfile. I'm still trying to find a solution for the old 'pre' version. Unfortunately, our app is entrenched it without a simple upgrade path.

@freitasjuciel
Copy link

I adjusted the css classes for bootstrap 3!

def html_container(html)
  tag :div, tag(:ul, html, :class => 'pagination')
end

def page_navigation_links(pages)
will_paginate(pages, :inner_window => 2, :outer_window => 0, :renderer => BootstrapLinkRenderer, :previous_label => '«'.html_safe, :next_label => '»'.html_safe)
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment