Download - Ruby on Rails : First Mile
“I always knew that one day Smalltalk would replace Java. I just didn’t know it would be called Ruby.” – Kent Beck, MountainWest RubyConf 2009
Ruby on Rails : First MileSujeet KumarGourab Mitra
Ruby on Rails : Applications
What is Ruby?o dynamic, reflective, general purpose object-oriented
programming languageo designed by Yukihiro "Matz" Matsumoto. It was influenced
primarily by Perl, Smalltalk, Eiffel, and Lisp.o Ruby supports multiple programming paradigms, including
functional, object oriented, imperative and reflective. It also has a dynamic type system and automatic memory management; it is therefore similar in varying respects to Python, Perl, Lisp, Dylan, Pike, and CLU.
o alternative implementations of the Ruby language, including YARV, JRuby, Rubinius, IronRuby, MacRuby, and HotRuby, each of which takes a different approach, with IronRuby, JRuby and MacRuby providing just-in-time compilation and MacRuby also providing ahead-of-time compilation
What is Rails ?o open source web application framework for the Ruby
programming language.o It is intended to be used with an Agile development
methodology that is used by web developers for rapid development
o Ruby on Rails was extracted by David Heinemeier Hansson from his work on Basecamp, a project management tool by 37signals (now a web application company
o David Hansson first released Rails as open source in July 2004
How Ruby helps RoR developerso By helping you know what the code in your
application is doingo By helping you do more in, and with, your Rails
applications that you can if you limit yourself to the readily available Rails idioms and techniques
o By allowing you to familiarize yourself with the Rails source code, which in turn enables you to participate in discussions about Rails and perhaps submit bugs and patches.
o By giving you powerful tool for administrative and organization tasks connected with your application.
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
Ruby Concepts• Thinking in Ruby• IRB• Hello World
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
Ruby for Rails• Ruby Constructs• Importance of Ruby• Extending Rails and other
frameworks
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
AgendaRuby ConceptsRuby for RailsRails ConceptsHello RoRFirst RoR AppFurther reading
Rails Concepts
• MVC• Server• Convention over Configuration• Structure of a Rails App• DRY(Don’t Repeat Yourself)• Migrations• Gems• Routes• And other topics
MVC o Stands for Model-View-Controllero Model is responsible for maintaining the state of an
applicationo View layer provides the user interfaceof an application
Servero WEBricko Mongrel
o > ruby script/servero > gem server
Convention over Configuration
o All you need is common sense and it works like magic!
o Comparison with C# , Java
o No Connection String
Structure of a Rails Appo Another example of
convention over configuration
o Advantageso > ruby script/console
DRY (Don’t Repeat Yourself)
Implications of DRY in RoR ; migrations , seeds etc.
Migrations1. Migrations are a convenient way for you to alter your
database in a structured and organized manner. You could edit fragments of SQL by hand but you would then be responsible for telling other developers that they need to go and run them. You’d also have to keep track of which changes need to be run against the production machines next time you deploy.
2. db/schema.rb3. Timestamp4. Use of migrations in case of faulty code generation
Typical Migrationclass CreateProducts < ActiveRecord::Migration def self.up
create_table :products do |t| t.string :name t.text :description t.timestamps end
end def self.down
drop_table :products end end
Custom Migrations> rake db:migrate VERSION=<timestamp>
> ruby script/generate migration Add<Field>To<ContollerName> fieldname:type
Routeso routes.rbo map.root
Gems1. > gem install <gem-name>2. > gem install <gem-name> --local3. > gem update –system4. > gem server5. From setup.rb … >ruby setup.rb6. From gemspec .. >gem build example.gemspec7. Get gemspecs / .gems form Rubyforge.com or
github8. Rake gem:install
Rails gem dependencies
Lets get to work …..Hello RoR
Good! Now lets make something more practical..
QUESTIONS ?? (just easy ones please)
Important Websiteshttp://rubyonrails.orghttp://railsbrain.comhttp://railscasts.comhttp://asciicasts.comhttp://github.com
Contacto Gourab Mitra [email protected] http://gourabmitra.co.cc
o Sujeet Kumar [email protected] http://bit.ly/aEFKTT
THANK YOU