You can do this simply by using :condition (SQL Where Clause), you will have to use WHERE title LIKE "a%" (that would get all rows with the title starting with an a). A simple explanation can be found here.
Hehe, I assume you use this (I havent used the default paginator myself, wrote my own):
http://api.rubyonrails.com/classes/ActionController/Pagination.html#M000104
Using that it should be easy, and it should also be easy to change the condition. Lets say you have the controller show_news:
def show_news: @sort_char = params[:sort_char] @news_pages, @news = paginate :people, :order => 'last_name, first_name', :condition => "title LIKE '#{@sort_char}%'" end
and in your view you would have both the "sort_char" available as well as all the pages starting with "sort_char". To pass the sort_char to the view you could use:
link_to "A", {:action => "show_news", :sort_char => "a"}
Of course you should write some helper-function that would print out the whole alphabet. If you look at http://api.rubyonrails.com/classes/ActionController/Pagination.html especially "Custom/Classic Pagination" you could surely work out away to do it without using the paginate-helper.