Presentation to
Siltek Software Solutions (I) Pvt. Ltd.
Why does RoR interest us?
 Learn “new” concepts and terms.
 Look at “new” architecture.
 Find out what is good and what...
Creator of Ruby
 Creator of Ruby
 Yukihiro Matsumoto aka Matz
 Birthday: 24 February 1993
 Originated in Japan and Rap...
Presentation Agenda
 Brief overview of Ruby
 Rails Demonstration
 Description of Rails framework
 Questions and Answers
Why Ruby?
 Write more understandable code in less lines
 Free (Very open license)
 Extensible
What is Ruby?
Dynamic, high level, interpreted, pure object-orientated
language.
“Ruby is designed to make programmers hap...
What is Ruby?
 Ruby is a pure object-oriented programming language with a super
clean syntax that makes programming elega...
Ruby is Truly Object-Oriented
 All classes derived from Object including Class (like Java)
but there are no primitives (n...
Dynamic Programming
 Duck Typing
Based on signatures, not class inheritance
 Dynamic Dispatch
A key concept of OOP: meth...
What about Ruby on Rails?
Terms and Concepts
 MVC (Model-View-Controller)
 Duck Typing
 DRY (Don’t Repeat Yourself)
 Convention Over Configurati...
Directory Layout
Rails applications have a common directory structure
/app - the MVC core
/controllers
/helpers - provides...
Directory Layout
/components - will be deprecated
/config - database, route and environment configuration
/db - database s...
Rails Directory Structure
MVC Architecture
The Obligatory Architecture Slide
Model – View – Controller
• Separate data (model) from user interface (view)
 Model
 data access and business logic
 in...
Model – Active Record
 Object Relational Mapping
 “ActiveRecord”
 Less Database “glue” Code
 Logging for Performance C...
Model : Rules
 Table Names
 Plurals
 Attribute Names
 id for primary key in table
 table_id for foreign key in other ...
View – Action View
 multiple template types
 oldest and basic: erb (embedded ruby), similar to e.g. jsp
 remote javascr...
Controller : ActionController
 Method name matches view folder
 users_controller.rb works for /views/users/***.rhtml
 c...
Database Persistence
 OR mapping
 Active Record design pattern
 migrations
 incremental schema management
 multiple d...
Duck Typing in Ruby
 Objects are dynamic, and their types are determined at
runtime
 The type of a Ruby object is much l...
Convention over Configuration
 fixed directory structure
 everything has its place – source
files, libs, plugins, databa...
DRY - Don’t Repeat Yourself
 reusing code
 e.g. view elements
 reusing data
 e.g. no need to declare table field names...
Rails Environment Modes
 Rails runs in different modes, depending on the parameters
given to the server on startup. Each ...
Web Servers
 Lighttpd
 Mongrel
 WEBrick
 Apache
RoR Databases
 Mysql
 Oracle
 Postgre Sql
 SqlLite
Scaffolding
 Rails can generate all the basic CRUD operations
for simple models via scaffolding.
 Scaffolding is tempora...
Migrations
 Rails uses migrations to version the database.
 Rails tries to minimize SQL at every opportunity
 Migration...
Running the Migration
 Rake is the general purpose build tool for
rails, much like make, or ant. It has many
functions, o...
Validations
 Rails has a number of validation helpers that can
be added to the model.
class Bookmark < ActiveRecord::Base...
Validations
 validates_presence_of
 validates_length_of
 validates_acceptance_of
 validates_confirmation_of
 validate...
Associations
 Rails uses associations to build relationships
between tables
 Associations are independent of database fo...
Types of Associations
 has_one
 belongs_to
 has_many
 has_and_belongs_to_many
 has_many :model1, :through => :model2
Mailers
 Action Mailer allows you to send emails from your
application using a mailer model and views. So, in
Rails, emai...
Rake
 Ruby’s Build System
 Familiar to Ant users
 Your build file is a written in Ruby
 Basic build script provided wi...
Recommended Rails reading
 Simply Rails 2.0
 Sitepoint.com
Great for
beginners
 Agile Web Development with Rails
 Prag...
Resources
 Ruby on Rails: Talk (Google Group)
 http://groups.google.com/group/rubyonrails-talk
 Railscasts (free Ruby o...
Who uses Ruby on Rails?
References
 www.slideshare.net
 www.youtube.com
 www.google.com
 http://www.netbeans.org/kb/docs/ruby/rapid-ruby-
webl...
Ruby on rails for beginers
Ruby on rails for beginers
Upcoming SlideShare
Loading in...5
×

Ruby on rails for beginers

763

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
763
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
29
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ruby on rails for beginers

  1. 1. Presentation to Siltek Software Solutions (I) Pvt. Ltd.
  2. 2. Why does RoR interest us?  Learn “new” concepts and terms.  Look at “new” architecture.  Find out what is good and what is dubious.  May well come across RoR or a Rails-like framework in near future.  May want to learn an object-oriented language relatively painlessly.  RoR is easy to install, learn and use. You might want to try it out for yourself!
  3. 3. Creator of Ruby  Creator of Ruby  Yukihiro Matsumoto aka Matz  Birthday: 24 February 1993  Originated in Japan and Rapidly Gaining Mindshare in US and Europe.
  4. 4. Presentation Agenda  Brief overview of Ruby  Rails Demonstration  Description of Rails framework  Questions and Answers
  5. 5. Why Ruby?  Write more understandable code in less lines  Free (Very open license)  Extensible
  6. 6. What is Ruby? Dynamic, high level, interpreted, pure object-orientated language. “Ruby is designed to make programmers happy” Yukihiro Matsumoto aka Matz
  7. 7. What is Ruby?  Ruby is a pure object-oriented programming language with a super clean syntax that makes programming elegant and fun.  In Ruby, everything is an object  Ruby is an interpreted scripting language, just like Perl, Python and PHP.  Ruby successfully combines Smalltalk's conceptual elegance, Python's ease of use and learning and Perl's pragmatism.  Ruby is a metaprogramming language. Metaprogramming is a means of writing software programs that write or manipulate other programs thereby making coding faster and more reliable.
  8. 8. Ruby is Truly Object-Oriented  All classes derived from Object including Class (like Java) but there are no primitives (not like Java at all)  Ruby uses single-inheritance  Mixins give you the power of multiple inheritance without the headaches  Modules allow addition of behaviors to a class  Reflection is built in along with lots of other highly dynamic metadata features  Things like ‘=‘ and ‘+’ that you might think are operators are actually methods (like Smalltalk)
  9. 9. Dynamic Programming  Duck Typing Based on signatures, not class inheritance  Dynamic Dispatch A key concept of OOP: methods are actually messages that are sent to an object instance  Dynamic Behavior  Reflection  Scope Reopening (Kind of like AOP)  Eval  Breakpoint debugger
  10. 10. What about Ruby on Rails?
  11. 11. Terms and Concepts  MVC (Model-View-Controller)  Duck Typing  DRY (Don’t Repeat Yourself)  Convention Over Configuration  Scaffolding  Migrations  Validations  Associations  Mailers
  12. 12. Directory Layout Rails applications have a common directory structure /app - the MVC core /controllers /helpers - provides extra functionality for views /models /views/nameofcontroller - templates for controller actions
  13. 13. Directory Layout /components - will be deprecated /config - database, route and environment configuration /db - database schema and migrations /lib - functions that don’t map to MVC /log /public - static web resources (html, css, javascript etc.) /script - rails utilities /test - tests and fixtures /tmp /vendor - 3rd party plugins
  14. 14. Rails Directory Structure
  15. 15. MVC Architecture
  16. 16. The Obligatory Architecture Slide
  17. 17. Model – View – Controller • Separate data (model) from user interface (view)  Model  data access and business logic  independent of the view and controller  View  data presentation and user interaction  read-only access to the model  Controller  handling events  operating on model and view
  18. 18. Model – Active Record  Object Relational Mapping  “ActiveRecord”  Less Database “glue” Code  Logging for Performance Checking
  19. 19. Model : Rules  Table Names  Plurals  Attribute Names  id for primary key in table  table_id for foreign key in other table
  20. 20. View – Action View  multiple template types  oldest and basic: erb (embedded ruby), similar to e.g. jsp  remote javascript templates  xml templates  easy reuse of view elements  file inclusion – layouts, templates, partials  multiple standard "helpers" – common html element generators (e.g. form elements, paginators)  easy AJAX integration
  21. 21. Controller : ActionController  Method name matches view folder  users_controller.rb works for /views/users/***.rhtml  called “actions”  all view’s methods will sit there  Ability to  CRUD  Flash  Redirect
  22. 22. Database Persistence  OR mapping  Active Record design pattern  migrations  incremental schema management  multiple db adapters  MySQL, PostgreSQL, SQLite, SQL Server, IBM DB2, Informix, Oracle
  23. 23. Duck Typing in Ruby  Objects are dynamic, and their types are determined at runtime  The type of a Ruby object is much less important than it’s capabilities  If a Ruby object walks like a duck and talks like a duck, then it can be treated as a duck
  24. 24. Convention over Configuration  fixed directory structure  everything has its place – source files, libs, plugins, database files, documentation etc  file naming conventions  e.g. camel case class name, underscore file name  database naming conventions  table names, primary and foreign keys  standard configuration files  e.g. database connections, environment setting definitions (development, production, test)
  25. 25. DRY - Don’t Repeat Yourself  reusing code  e.g. view elements  reusing data  e.g. no need to declare table field names – can be read from the database  making each line of code work harder  e.g. mini languages for specific domains  object-relational mapping  metaprogramming  dynamically created methods
  26. 26. Rails Environment Modes  Rails runs in different modes, depending on the parameters given to the server on startup. Each mode defaults to it’s own database schema Development (verbose logging and error messages) Test Production
  27. 27. Web Servers  Lighttpd  Mongrel  WEBrick  Apache
  28. 28. RoR Databases  Mysql  Oracle  Postgre Sql  SqlLite
  29. 29. Scaffolding  Rails can generate all the basic CRUD operations for simple models via scaffolding.  Scaffolding is temporary way to get applications wired quickly.  ruby script/generate scaffold_resource bookmark url:string title:string
  30. 30. Migrations  Rails uses migrations to version the database.  Rails tries to minimize SQL at every opportunity  Migrations are automatically created whenever you generate a new model  Migration files are located in db/migrations  The version number is stored in a table called schema_info
  31. 31. Running the Migration  Rake is the general purpose build tool for rails, much like make, or ant. It has many functions, one of which is to control migrations.  rake db:migrate  Now the table has been created
  32. 32. Validations  Rails has a number of validation helpers that can be added to the model. class Bookmark < ActiveRecord::Base validates_presence_of :url, :title end
  33. 33. Validations  validates_presence_of  validates_length_of  validates_acceptance_of  validates_confirmation_of  validates_uniqueness_of  validates_format_of  validates_numericality_of  validates_inclusion_in  validates_exclusion_of  validates_associated :relation
  34. 34. Associations  Rails uses associations to build relationships between tables  Associations are independent of database foreign key constraints
  35. 35. Types of Associations  has_one  belongs_to  has_many  has_and_belongs_to_many  has_many :model1, :through => :model2
  36. 36. Mailers  Action Mailer allows you to send emails from your application using a mailer model and views. So, in Rails, emails are used by creating models that inherit from ActionMailer::Base that live alongside other models in app/models. Those models have associated views that appear alongside controller views in app/views.
  37. 37. Rake  Ruby’s Build System  Familiar to Ant users  Your build file is a written in Ruby  Basic build script provided with Rails project
  38. 38. Recommended Rails reading  Simply Rails 2.0  Sitepoint.com Great for beginners  Agile Web Development with Rails  PragProg.com A little bit more advanced
  39. 39. Resources  Ruby on Rails: Talk (Google Group)  http://groups.google.com/group/rubyonrails-talk  Railscasts (free Ruby on Rails screencasts)  http://railscasts.com  Peep Code (paid Rails-related screencasts)  http://peepcode.com  Phusion Passenger (easy deployment module)  http://www.modrails.com  Agile Web Development (plugin central)  http://agilewebdevelopment.com/
  40. 40. Who uses Ruby on Rails?
  41. 41. References  www.slideshare.net  www.youtube.com  www.google.com  http://www.netbeans.org/kb/docs/ruby/rapid-ruby- weblog.html  http://guides.rails.info/getting_started.html  www.rubyonrails.org  http://www.tutorialspoint.com/ruby-on-rails-2.1
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×