"rails g devise:install".
Add method to controller to set actionmailer url options on every request.
Add notice and alert in an aside in the header in layout file.
Force app to not access the DB or load models when precompiling assets.

This is needed if you want to push to Heroku with Rails 3.2
"rails g devise User", then migrate.
"rails g model Snippet user:references public", then migrate.

Also, remove timestamps from migration, as we will have a created_at
timestamp for each iteration, instead.
User has many snippets.
"rails g model Iteration snippet:references language code", then migrate.

Also, only use created_at timestamp column.
Snippet has many iterations.
Migration: change iteration's created_at to use datetime, instead of timestamp (identical in Rails 3.2).
Reorganise user model comments and line ordering.
"rails g model Share snippet:references user:references", then migrate.
Migration: change snippet's public column from string to boolean.
Migration: set snippet's public column default value to true.
"rails g model Vote user:references votable_id:integer votable_type", then migrate.

Also, only use created_at timestamp column.
Also, add index for votable id and votable type on votes table.
"rails g model Comment user:references commentable_id:integer commentable_type body start_index end_index", then migrate.

Also, only use created_at timestamp column.
Also, add index for commentable id and commentable type on comments table.
Set polymorphic attributes on comments and votes models.
Migration: add up field to votes.
Migration: set votes up field to true by default.
Add iteration, comment and vote associations to user model.