Ruby is a pure object-oriented programming language with a super clean syntax that makes programming elegant and fun. Ruby successfully combines Smalltalk’s conceptual elegance, Python’s ease of use and learning, and Perl’s pragmatism. Ruby originated in Japan in the early 1990s, and has started to become popular worldwide in the past few years as more English language books and documentation have become available.
Rails is an open source Ruby framework for developing database-backed web applications. What’s special about that? There are dozens of frameworks out there and most of them have been around much longer than Rails. Why should you care about yet another framework?
Many things that are very simple to do in Ruby are not even possible in most other languages. Rails takes full advantage of this. The rest of the answer is in two of Rail’s guiding principles: less software and convention over configuration.
Ruby on Rails is a free web application framework. It aims to increase the speed and ease with which database-driven web sites can be created, and offers skeleton code frameworks (scaffolding) from the outset. Often shortened to Rails, or RoR, Ruby on Rails is an open source project written in the Ruby programming language, and applications using the Rails framework are developed using the Model-View-Controller design paradigm
You can find Installation HowTos from te following Link :-
http://wiki.rubyonrails.org/rails/pages/HowtosInstallation
Like many contemporary web frameworks, Rails uses the Model-View-Controller (MVC) architecture for organizing application programming.
Rails provides ‘out of the box’ scaffolding which can quickly construct most of the models and views needed for a basic website. Other helpful development tools come with or are installed with Rails, such as the WEBrick web server, and the Rake build system.
Rails is also noteworthy for its extensive use of the JavaScript libraries Prototype and Script.aculo.us for Ajax and its graphical interface.
For web services Rails initially supported lightweight SOAP; later it was replaced by RESTful web services. The recommended REST based programming structure changed drastically in version 1.2.
For Installation How Tos about RubyOnRails on RedHat :-
http://wiki.rubyonrails.org/rails/pages/Ruby+and+Rails+on+Red+Hat+Linux+9
Installing Ruby, Gems and Rails On Debian
Ruby
Debian Stable contains a prepackaged version of Ruby. In addition to installing Ruby, you also need to install the zlib compression libraries for Ruby, the Ruby Documentation program that generates documentation from ruby source files, and the command-line Ruby interface. Run the following command to install the needed packages:
aptitude install ruby libzlib-ruby rdoc irb
(You might prefer to use “apt-get install ruby libzlib-ruby rdoc irb” if you don’t use aptitude.)
If you want to test-drive Ruby from the command line you can run the irb
program and execute Ruby commands:
# irb
rb(main):001:0> 3+5
=> 8
irb(main):002:0> 4*20
=> 80
irb(main):003:0> foo="bar"
=> "bar"
irb(main):004:0> foo.reverse
=> "rab"
irb(main):005:0> bar=40
=> 40
irb(main):006:0> bar.to_s.reverse
=> "04"
irb(main):007:0> exit
Gems
Now that you have Ruby installed you need to manually download the Gems package management software for Ruby. The latest version of Gems can be downloaded from the RubyForge web site.
From the command line, cd into the directory where you downloaded the Gems tarball and run the following command to extract the contents of the archive:
tar zxvf rubygems-0.8.11.tgz
Please note that the version number may be different if you downloaded a different version. You now need to cd into the newly created Gems directory and run the setup program for Gems:
cd rubygems-0.8.11
ruby setup.rb all
Notice how even the setup program for Gems is written in Ruby. These people take their language seriously.
Rails
Now that Gems is installed, you can finally install Rails. Run the following command to tell Gems to download and install the latest version of Rails:
gem install rails --include-dependencies
Congratulations, Ruby on Rails is now installed on your system.
Apache
While you can use many different web servers with Rails, we’re going to configure our installation with Apache. If you want to configure Rails with a different web server, a quick Google search will yield results on how to configure Rails with other web servers.
The following command will install Apache and the FastCGI libraries for both Apache and Ruby:
aptitude install apache libapache-mod-fastcgi libfcgi-ruby1.8
(Again, you may use apt-get if you wish: “apt-get install apache libapache-mod-fastcgi libfcgi-ruby1.8“.)
The Debian package manager will automatically update Apache’s configuration file to enable FastCGI and will start the web server. That’s all you need to configure in Apache for right now. We will revisit Apache later in the article when we’ve made more progress.
Now you need to create a place to store your Rails applications. While you can store your Rails applications anywhere you want, including your home directory if desired, I recommend storing them in /var/rails. Why /var? Because /var is where Apache on Debian stores its web site files (/var/www to be exact) and I like keeping similar files in the same directory.
The following commands will create the Rails application directory and set the proper permissions for their use by the web server:
mkdir /var/rails
chown -R www-data:www-data /var/rails
Database
Ruby on Rails supports multiple databases. The following is a list of some of the packages that supply database drivers for Ruby:
- libmysql-ruby
- libpgsql-ruby
- libsqlite3-ruby
For example, to install the Ruby drivers for PostreSQL, you would run the following command:
aptitude install libpgsql-ruby
If you want to verify that the drivers are properly installed, you can run the following set of commands:
# irb
irb(main):001:0> require 'postgres'
=> true
irb(main):002:0> exit
You can see that the driver loaded successfully and we were able to exit out of the Ruby interface.
RadRails: A Rails IDE
If you’re considering using Rails it’s probably because of the promises of a faster development cycle (that’s certain not a bad thing). To further speed up your development time you may consider using an IDE (integrated development environment) like RadRails. The RadRails IDE is based on the Eclipse project and has been customized specifically for Ruby on Rails development. If RadRails sounds like something you’d like to try, read on, otherwise, skip on down to the Creating a Rails Application section and fire up your favorite editor.
Java
Because RadRails is written in Java, you need to install Java on your system. The latest version of Java can be downloaded from Sun’s website.
Once you’ve downloaded the self-extracted archive, run the following command to extract the archive’s contents:
bash jdk-1_5_0_06-linux-i586.bin
You now need to move the extracted directory into the /usr/local directory:
mv jdk1.5.0_06 /usr/local
In order to make the Java executables accessible from your path, you need to create symbolic links for all the Java programs. Fortunately, you can use the wildcard and your shell will automatically expand all the programs and create the links for you.
ln -s /usr/local/jdk1.5.0_06/bin/* /usr/local/bin/
To test that Java is installed on your system and accessible from the path, run the following command.
java -version
You should see a few lines telling you about the version of Java you just installed. If you get an error, please go back and make certain you followed the steps correctly.
An alternative approach is to create a Debian package, and use that to install your Java install. This has been covered here before.
RadRails
You now need to download the RadRails archive from their website.
After the download is complete, change into the directory where you downloaded the archive to and execute the following command:
unzip radrails-0.5.2.1-linux.zip
If unzip isn’t installed on your system you need to install the package:
aptitude install unzip
(Or “apt-get install unzip“.)
Once you’ve successfully extracted the contents of the archive, execute the following command to move RadRails into its destination directory:
mv radrails /usr/local
RadRails is now installed. You can run RadRails by executing the following command:
/usr/local/radrails/radrails
Note: Because RadRails is a Java program it doesn’t like being called from a symbolic link. If you create a symbolic link to a directory in your path and then try to run the program it will spit out errors and crash. I guess that’s the downside of write-once, run-anywhere.
Creating a Rails Application
Now you’re ready to create your first Rails application. All the Rails files that require editing can be opened in any editor (e.g. vi, emacs, etc.) or can be edited with RadRails. Use whichever program is most comfortable for you. However, I do not recommend using RadRails to edit non-Rails files (e.g. httpd.conf). Non-rails files should be edited with a normal editor.
Before you run any commands, change into the rails directory that you created earlier.
cd /var/rails
Now you can tell Rails to create a new application. Replace yourapp
with the name of your application:
rails yourapp
Rails will now create a large number of files in /var/rails/yourapp that will make up your Rails application. Let’s start out by editing the .htaccess file in order to tell your application to use FastCGI instead of regular CGI.
Edit the file /var/rails/yourapp/public/.htaccess and make the following changes:
Comment out: RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
Insert: RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
Notice that the different between the two lines is the extension on the dispatch file. We’ve changed it so your application will use the FastCGI version.
WEBrick
Ruby on Rails has a built-in web server called WEBrick that you can use to test out your Rails applications. While WEBrick is good for testing, you wouldn’t want to use it in a production environment. For the real deal you will want to use a real web server like Apache or lighttpd.
To start WEBrick, run the following command:
script/server
Now you can fire up your web browser and load the following URL to access the web server:
Configuring Apache
You now have two different options for configuring Apache to use your Rails application. You can configure your application is a virtual host which will not effect the main web site, or you can make the rails application the main web site. If you want to test Rails on a web server that is already serving web sites then you will want to use the virtual host option. If your Rails application is the only thing being served by your web server then you can make it the main web site.
Virtual Host
Open up the /etc/apache/httpd.conf file and add the following configuration information at the end of the file:
<virtualhost *:80>
ServerName yourapp
DocumentRoot /var/rails/yourapp/public/
ErrorLog /var/rails/yourapp/log/apache.log
<directory /var/rails/yourapp/public>
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride all
Order allow,deny
Allow from all
</directory>
</virtualhost>
Save the file, exit from your editor and run the following command to restart Apache:
/etc/init.d/apache restart
You now need to edit your /etc/hosts file so the name you gave your server will resolve. Either add the following line to your hosts file or add yourapp to the end of the existing line:
127.0.0.1 yourapp
Now open up your web browser and load the following address:
You should see a page welcoming you to Ruby on Rails!
Entire Web Server
Open up the /etc/apache/httpd.conf file and make the following change:
Comment out: DocumentRoot /var/www
Insert: DocumentRoot /var/rails/yourapp/public
You will also need to add the follow configuration to the end of the file:
<directory /var/rails/yourapp/public>
Options ExecCGI FollowSymLinks
AddHandler cgi-script .cgi
AllowOverride all
Order allow,deny
Allow from all
</directory>
Save the file, exit from your editor and run the following command to restart Apache:
/etc/init.d/apache restart
Now open up your web browser and load the following address:
You should see a page welcoming you to Ruby on Rails!
Developing your Application
This article isn’t going to cover how to write a Rails application. There are a million resources out there that can get you started developing with Rails. If you want some demonstrations of what can be done with Rails in less than half an hour, take a look at the ScreenCasts on the Ruby on Rails web site.
Ruby on Rails documentation, including web sites, books, and other resources, can also be found on the Ruby on Rails Documentation web page.