I’ve been using the “annotate” gem for a while and it’s simple whilst incredibly useful. Essentially once run it documents each resource in your database within the appropriate file. Here’s how to get it working.
Step 1
Install the gem. There are a few ways to do this but I usually include the following line in my Gemfile:
[code language=”ruby”]
gem ‘annotate’
[/code]
Then run “bundle install” from the command line.
Step 2
Generate the schema annotations by running:
[code language=”bash”]
annotate
[/code]
in the root of your rails project directory and it will inject the schema details for each “table” into the respective “model.rb” file e.g. “user.rb” might contain:
[code language=”ruby”]
# == Schema Information
#
# Table name: users
#
# id :integer not null, primary key
# screen_name :string(255)
# name :string(255)
# created_at :datetime
# updated_at :datetime
#
[/code]
Great find, I’m a total RoR noob (but learning) and I was like “WHERE ARE ALLL THE PROPERTIES IN MY MODEL!!!!!”. Then I realized the meta data is stored in db/schema.rb, but this is really more of a script to help generate a schema, not really document it.
I want to go to a model and see all the fields that comprise it gosh darnit!
But of course this didn’t work for me initially, I swear getting gems to work together is the hardest thing about rails. I am using the ‘thin’ gem for web server on heroku but if this is included in your local file on windows bundle install will fail. Once I finally commented out the thin gem I could get this installed and run it.
-Jason
I ended up making my gem file like this:
group :production do
#postgres gem for deployment on heroku
gem ‘pg’
#use thin for webserver on heroku
gem ‘thin’
end
And then run: “bundle install –without production”