Friendly suggestions

Ok, so I saw @datachomp open this project up.  I took a look, and I thought I'd throw in a few suggestions.  

I did this while watching tv, so don't trust everything... my attention was spread out.  

Why throw this in here, and why rename "database.yml" to "database.yml.default"?  

You want to make it easy for people to run your project... and usually this means that they should be able to hook to a local sqlite3 db and fire it up.  But you also want to make it easy for yourself to pull it down and run it on your local db (I often run my stuff against Postgres, too).  I have private projects that have a file like "database.yml.darren", just for me. Just keep them aside and keep the database.yml out of source control.

Sqlite3 won't work on this project, though... there are some Postgres specific stuff that I saw.  I tried working around them, but it wasn't easy.  My general advice with AR is to try to keep it database-agnostic as-much-as-possible.  But not for the usual "Oh, but what if you change" reason, but another:  You really, really, really want to keep the details of your database out of AR as much as possible.  Even when you use a database specific feature like Postgres' HSTORE, there's usually an agnostic method to get around it.

Letting database details bleed into the app.... it's so much worse when Active Record is catching the blood.  Active Record isn't a bucket, it's a fan that's going to fling that blood everywhere and make a big mess.  I think there's a funnier analogy to make here, but I can't think of it.