The Silver Lining

Lessons & Learnings from a salesforce certified technical architect.

Archive for the ‘Rails’ Category

A gem to help you document your Rails ActiveRecord model

with 2 comments

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:

gem 'annotate'

Then run “bundle install” from the command line.

Step 2

Generate the schema annotations by running:


annotate

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:

# == Schema Information
#
# Table name: users
#
#  id          :integer         not null, primary key
#  screen_name :string(255)
#  name        :string(255)
#  created_at  :datetime
#  updated_at  :datetime
#

Written by Wes

October 21, 2011 at 5:50 pm

Ruby, Rails & RVM woes

with one comment

I’ve had several issues over the past day pertaining to Ruby, Rails and RVM and all of them were caused by one silly thing.

Problem 1: You can’t swap between Ruby versions using RVM

If you can’t swap between Ruby versions that you know you’ve installed then you’ve probably installed something using “sudo”. It is highly recommended that you install & use RVM in the single user mode as this is easiest. If you do this then all the versions of Ruby etc. that you install will be installed in your home directory (usually ~/.rvm/) instead of system wide and this negates a whole bunch of complexities. Running this command will tell you which ruby executable you’re using:


which ruby

If the executable is not sitting in your home directory e.g. it’s in /usr/local/bin then you’re in a spot of bother. The easiest way I’ve found to fix this is to clear out all the RVM gemsets and start again. I’ve found that I needed to run:


rm -fr ~/.rvm

rm -fr ~/.bin

Be careful with the second command. I’d have a look around that directory before deleting it to make sure it’s not being used by anything else.

Having wiped out these directory you can now using RVM to install fresh versions of Ruby.

Problem 2: Running “rails -v” or “rails” throws an error similar to “`report_activate_error’: Could not find RubyGem rails’

This is assuming you don’t have the first problem or that you’ve corrected it. It’s also most likely to occur if you’re using RVM. The cause here is that you’re using a local version of RVM to manage your Ruby versions but have installed Rails using “sudo” so that it’s been installed system wide. The solution is simple, remove the “sudo” so that rails is installed just for your currently active gemset.


gem install rails --version x.y.z

Written by Wes

August 7, 2011 at 1:38 pm

Posted in Rails, Ruby, RVM

Tagged with , , , , ,