Sort HTML tables in a Rails app.
script/plugin install git://github.com/dancroak/sortable_table.gitIn test/test_helper.rb:
class Test::Unit::TestCase include SortableTable::Test::TestHelper endIn app/controllers/application_controller.rb:
class ApplicationController < ActionController::Base include SortableTable::App::Controllers::ApplicationController endIn app/helpers/application_helper.rb:
module ApplicationHelper include SortableTable::App::Helpers::ApplicationHelper endparams[:sort] and params[:order]
Use the sortable_attributes macro to list the… sortable attributes.
Then, in your index action, pass the sort_order method to your usual
order parameter for will paginate or named scope call.
Time-saving Shoulda macros for your tests:
class UsersControllerTest < ActionController::TestCase context ‘GET to index with sort and order params’ do setup do 5.times do |each| Factory :user, :name => “name #{each}”, :email => “email#{each}@example.com” end end should_sort_by :name should_sort_by :email end endAnd some sugar for your views:
%h1 Users %table %tr = sortable_table_header :name => ‘Name’, :sort => ‘name’ = sortable_table_header :name => ‘E-mail’, :sort => ‘email’ - @users.each do |each| %tr %td= each.name %td= each.emailAuthors
-——
Dan Croak, Joe Ferris, and Boston.rb.
Copyright © 2008 Dan Croak, released under the MIT license