Skip to content

Instantly share code, notes, and snippets.

@henrik
Forked from isaacbowen/will_paginate.rb
Created September 13, 2011 14:57
Show Gist options
  • Star 15 You must be signed in to star a gist
  • Fork 6 You must be signed in to fork a gist
  • Save henrik/1214011 to your computer and use it in GitHub Desktop.
Save henrik/1214011 to your computer and use it in GitHub Desktop.
Extends will_paginate to play well with Twitter's Bootstrap (http://twitter.github.com/bootstrap/). Suggested location: config/initializers/will_paginate.rb
# https://gist.github.com/1214011
module WillPaginate
module ActionView
def will_paginate(collection = nil, options = {})
options[:renderer] ||= BootstrapLinkRenderer
super.try :html_safe
end
class BootstrapLinkRenderer < 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 previous_or_next_page(page, text, classname)
tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ')
end
def gap
tag :li, link(super, '#'), :class => 'disabled'
end
end
end
end
@ozanyurt
Copy link

thanks @grosser that one help me

@j-wilkins
Copy link

this is amazing. thanks.

For reference, I had to add a require line, but only the action_view require mentioned by @grosser was necessary.

@peternixey
Copy link

This gist worked a treat for me, although it did also need the two require modules pointed out by @grosser. Thanks you.

@tskogberg
Copy link

Just use: tag :ul, html, container_attributes instead of tag :div, tag(:ul, html), container_attributes
and it will work just fine with Bootstrap 3. They removed the div (http://getbootstrap.com/components/#pagination).

@ilya-github
Copy link

Thank you @grosser

@asnad
Copy link

asnad commented Jul 17, 2019

thanks @grosser but why I needed to add it while it was working on development and I was getting error only on production.

@grosser
Copy link

grosser commented Jul 17, 2019

don't remember what was going on here 🤷‍♂️

@cristianrennella
Copy link

It was better for me to add this gem https://github.com/delef/will_paginate-bootstrap4 and solves the issue

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