One reason for Ruby's popularity is undoubtedly Ruby on Rails aka RoR, an open source Web Development framework for Ruby. The power of RoR lies in it's simplicity and speed of development! Many popular websites like Twitter, Hulu, Scribd, and Github make use of RoR (see this).
One must note that Ruby != RoR. They're totally different!
Hopefully, this short intro has gotten you interested in Ruby and RoR. So let's see how to setup Ruby and RoR on Windows systems! Why Windows? Because the install procedure for Windows is a bit of a pain in the a** compared to the install procedure in Linux. For this article, I'll be using a system running Windows 7.
Anyway, here's what you need:
- The latest version of Ruby Installer (Get it from here)
- The latest version of XAMPP (Get it from here)
So let's get started shall we?
- Double Click on the Ruby Installer executable and install Ruby into C:\Ruby
- Double Click on the XAMPP executable and install XAMPP in C:\xampp
- Go to My Computer-> System Properties->Advanced System Settings
- Choose the Advanced tab and then click on Environment Variables
- Check if C:\Ruby\bin is present in the Path row. If not present, select the Path row, click edit, and add C:\Ruby\bin; at the start.
- Open a Command Prompt and do the following:
C:\>ruby -v
ruby 1.8.
C:\>gem -v
1.3.7 - If you get this output (or something similar depending on the version of Ruby and RubyGem installed), you have Ruby and RubyGems installed successfully! So How about we get on the rails now, and install RoR?
C:\>gem install rails --include-dependencies
INFO: `gem install -y` is now default and will be removed
INFO: use --ignore-dependencies to install only the gems you list
Successfully installed rails-3.0.0
1 gem installed
Installing ri documentation for rails-3.0.0... - Let us check if Rails is installed or not:
C:\>gem list
*** LOCAL GEMS ***
abstract (1.0.0)
actionmailer (3.0.0)
actionpack (3.0.0)
activemodel (3.0.0)
activerecord (3.0.0)
activeresource (3.0.0)
activesupport (3.0.0)
arel (1.0.1)
builder (2.1.2)
bundler (1.0.2)
erubis (2.6.6)
i18n (0.4.1)
mail (2.2.7)
mime-types (1.16)
polyglot (0.3.1)
rack (1.2.1)
rack-mount (0.6.13)
rack-test (0.5.6)
rails (3.0.0)
railties (3.0.0)
rake (0.8.7)
thor (0.14.3)
treetop (1.4.8)
tzinfo (0.3.23) - Yeah! So we're all set with RoR! Now let's get XAMPP configured shall we? Go to C:\xampp\htdocs and create a new folder where your RoR project will reside. Let's name this folder Ruby.
- Now go to C:\xampp\apache\conf and open the file named httpd.conf with a text editor (I use Notepad++) and add the following right at the end of the file:
Listen 3000
LoadModule rewrite_module modules/mod_rewrite.so
#################################
# RUBY SETUP
#################################
<virtualHost *:3000>
ServerName rails
DocumentRoot "c:/xampp/htdocs/ruby/public"
<Directory "c:/xampp/htdocs/ruby/public/"
Options ExecCGI FollowSymLinks
AllowOverride all
Allow from all
Order allow,deny
AddHandler cgi-script .cgi
AddHandler fastcgi-script .fcgi
</Directory>
</VirtualHost>
Note the DocumentRoot and Directory line.... they must have the correct path of the folder that you created. - Now we shall see the power of RoR. Go to the Command Prompt and type in:
C:\Ruby\bin>rails new C:/xampp/htdocs/ruby -d mysql
exist
create README
create Rakefile
create config.ru
create .gitignore
create Gemfile
create app
create app/controllers/application_controller.rb
create app/helpers/application_helper.rb
create app/views/layouts/application.html.erb
create app/mailers
create app/models
create config
create config/routes.rb
create config/application.rb
create config/environment.rb
create config/environments
create config/environments/development.rb
create config/environments/production.rb
create config/environments/test.rb
create config/initializers
create config/initializers/backtrace_silencers.rb
create config/initializers/inflections.rb
create config/initializers/mime_types.rb
create config/initializers/secret_token.rb
create config/initializers/session_store.rb
create config/locales
create config/locales/en.yml
create config/boot.rb
create config/database.yml
create db
create db/seeds.rb
create doc
create doc/README_FOR_APP
create lib
create lib/tasks
create lib/tasks/.gitkeep
create log
create log/server.log
create log/production.log
create log/development.log
create log/test.log
create public
create public/404.html
create public/422.html
create public/500.html
create public/favicon.ico
create public/index.html
create public/robots.txt
create public/images
create public/images/rails.png
create public/stylesheets
create public/stylesheets/.gitkeep
create public/javascripts
create public/javascripts/application.js
create public/javascripts/controls.js
create public/javascripts/dragdrop.js
create public/javascripts/effects.js
create public/javascripts/prototype.js
create public/javascripts/rails.js
create script
create script/rails
create test
create test/performance/browsing_test.rb
create test/test_helper.rb
create test/fixtures
create test/functional
create test/integration
create test/unit
create tmp
create tmp/sessions
create tmp/sockets
create tmp/cache
create tmp/pids
create vendor/plugins
create vendor/plugins/.gitkeep
If you now go to C:\xampp\htdocs\ruby, you should see something like this:
These are all the files created automagically by RoR! Nice, ain't it? - Start XAMPP and start the MySQL and Apache services:
- Open a browser (Read: Firefox! :) ) and type in http://localhost:3000 ... and you should see this page:
- That's it... you're now officially on the Rails! So now it's time to start developing you web apps with RoR!
- Gems are, in my opinion, the most powerful feature of Ruby. Gems are like modules that can easily be used in any project. I'd urge you to head over to this site, which holds over 16500 Ruby gems. Installing any gem is the same procedure as Step 7. Just type in gem install [gemname] to download and install the gem. You will probably need gems like mysql (gem install mysql), sinatra (gem install sinatra) etc. for web app development.
- Yes, I know this is NOT the only way to install RoR. But I use XAMPP for almost everything so have included it here as well! This procedure should ideally work with WampServer as well, as long as the paths are corrected.
- By default, RoR assumes that your MySQL root password is absent. However if you have assigned a root password, you must change the database.yml file present in C:\xampp\htdocs\Ruby\config.yml . Also, RoR recommends the creation of 3 databases: One each for testing, development and production. By convention they are named as [projectname]_test,[projectname]_production and [projectname]_production. You will have to create these databases externally through MySQL or using rake db:migrate. If you prefer to use alternative names, simply modify the config.yml file with names of your choice!
- RoR on Windows really is a bit of a pain, and may not even work the first time! Honestly, I believe any serious developer must be comfortable working in Linux, which is more suited to the need! RoR on Linux is a breeze and works great (if not better)!