Ruby on Rails 3 Beta Setup Hurdle

The Ruby on Rails 3 beta was released recently and has been in development for the past year, longer if you take into account Merb.

I decided I wanted to start playing around with the release for a few reasons:

  • In order to see what issues developers may face moving to Rails 3 with existing applications.
  • I wanted to see the new architecture changes from Rails 2.x
  • I also wanted to see first-hand creating a simple application and all that is involved.

There are plenty of tutorials about how to setup Rails 3 and I won’t go into details here but wanted to share the method I used and one particular error I received and how I resolved it. Jeremy McAnally has some great coverage of using Rails 3, both new projects and upgrades. His rails_upgrade gem is a great place to start when beginning to look at moving an existing Rails project to Rails 3.

Setup

I decided to use the awesome Ruby Version Manager (RVM) to manage testing Rails 3 on different flavors of Ruby. The first thing to know is Rails 3 requires Ruby 1.8.7 and above, so no 1.8.6.

Ryan Bates has a great intro to setting up Rails 3 with RVM in his latest Railscast titled Rails 3 Beta and RVM.

I decided to use Ruby 1.8.7 for initial testing. There are a bunch of gem dependencies when working with Rails 3, as you might expect. There is a gem called rails3b which installs the necessary dependencies in one swoop. These two command should do the trick:

gem install rails3b
gem install arel --pre

After these commands finished and I closed and reopened my terminal prompt, a quick rails command gave me the following error:

/usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:827:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:261:in `activate'
from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:68:in `gem'
from /usr/local/bin/rails:18

Some Googling did not return any usable results from anyone with this error. I really didn’t expect anything, things are just too new. Thinking back to another way to install Rails 3, I decided to try this instead:

gem install tzinfo builder memcache-client rack rack-test rack-mount erubis mail text-format thor bundler i18n
gem install rails --pre

After running these two gem commands the new rails command works as expected. I’m not really clear what the difference was which fixed the rails command, but I don’t know if I need to.

Do keep in mind the default database provider is Sqlite3 so you need to install that gem (sqlite3-ruby). Probably one of the biggest tips is to make sure you don’t use sudo when installing gems under RVM managed Ruby installation, just use gem install <gem name>.

UPDATE: Jeremy McAnally points out the rails3b gem installs the dependencies for the Rails 3 beta, not Rails itself.  This would certainly explain why my initial attempt failed and only worked after INSTALLING RAILS.

Technorati Tags: ,
  • http://omgbloglol.com/ Jeremy McAnally

    If I’m not mistaken, the rails3b metagem only installs the deps; you still have to install the rails gem separately.

  • http://omgbloglol.com Jeremy McAnally

    If I’m not mistaken, the rails3b metagem only installs the deps; you still have to install the rails gem separately.

  • http://www.accidentaltechnologist.com/ Rob Bazinet

    @Jeremy – ah, well then that would make perfect sense. The comment from Jeremy Kemper lead me to think it was a replacement for the two step process of dependencies and then rails. Thanks for pointing it out and the behavior leads me agree.

  • http://www.accidentaltechnologist.com Rob Bazinet

    @Jeremy – ah, well then that would make perfect sense. The comment from Jeremy Kemper lead me to think it was a replacement for the two step process of dependencies and then rails. Thanks for pointing it out and the behavior leads me agree.

  • http://invalidlogic.com/ Ken Robertson

    You use anything like authlogic for authentication and such? Was wanting to do a quick and simple rails3 app, but needed user authentication.

  • http://invalidlogic.com/ Ken Robertson

    You use anything like authlogic for authentication and such? Was wanting to do a quick and simple rails3 app, but needed user authentication.

  • http://www.accidentaltechnologist.com/ Rob Bazinet

    @Ken – I do use Authlogic but have not tried it under Rails 3 just yet. I see from here – http://railsplugins.org/plugins?letter=A, that Authlogic is not working yet. Maybe roll your own or check out some other authentication schemes out there which are not as complex.
    I will need authentication for something I am working but haven’t gotten to that decision yet.

  • http://www.accidentaltechnologist.com Rob Bazinet

    @Ken – I do use Authlogic but have not tried it under Rails 3 just yet. I see from here – http://railsplugins.org/plugins?letter=A, that Authlogic is not working yet. Maybe roll your own or check out some other authentication schemes out there which are not as complex.

    I will need authentication for something I am working but haven’t gotten to that decision yet.