How do I "activate" a different version of a particular gem? How do I "activate" a different version of a particular gem? ruby-on-rails ruby-on-rails

How do I "activate" a different version of a particular gem?


If your problem is to run binaries of a certain version, then:

rails --version # => the latest versionrails _2.3.10_ --version # => Rails 2.3.10

This pattern (gem-binary _gem-version_) works for any gem binary.

Hope it helps.


Use RVM

RVM allows you to manage different versions of Ruby and Gems. You can install a version of ruby using, for example

rvm install 1.9.2

You can then use it using:

rvm use 1.9.2

Use specific gems on a per project basis with gemsets.

If you want further namespacing you can set up gemsets; directories which will contain specific gems for a specific project.

rvm gemset create myproject

then you can use them like so:

rvm use 1.9.2@myproject

Automation

To automate the process of switching gems, pop .ruby-version and .ruby-gemset files in your project root. Pop the version of Ruby and name of the gemset you want to use inside them and RVM wil select the correct gemset when you cd into your project directory.

Installing gems into your gemset

Install your gems into your gemset in the usual way using bundler if you are using it:

bundle install

or just using the regular old:

gem install mygem

The gems will go in the right gemset.

RVM Alternatives

You might also want to check out rbenv, which does similar job.


You can use RVM

Then you can also use Bundler afterwards, which manages gem dependencies fine.

In your Gemfile

gem "rails", "2.3.10"

and in your application

require 'rubygems'require 'bundler/setup'

and you're done.