An easy way to paginate a list of ActiveRecord objects alphabetically by any given attribute.
class User < ActiveRecord::Base paginate_alphabetically :by => :surname end
class UsersController < ApplicationController def index @users = User.alphabetical_group(params[:letter]) end end
View (haml example)
= alphabetically_paginate(@users) %ul.users - @users.each do |user| %li= user.surname
The tests use a sqlite3 in-memory database to be able to run separately from your application.
The initial model code will take a show_all_letters option, in order to skip the (slow) letter finding code:
class User < ActiveRecord::Base paginate_alphabetically :by => :surname, :show_all_letters => true end
Thanks to hoverlover the alphabetically_paginate view helper can take an options hash which allows you to override the class if you don’t want it to be ‘pagination’. For example:
= alphabetically_paginate(@users, :class => 'user-pagination')
We welcome feedback, issues and especially pull requests. Please make sure your change is tested. Please do not update the VERSION file – we’ll do that automatically. Thanks!
Copyright © 2010 Eden Development, released under the MIT license