SlideShare a Scribd company logo
1 of 48
Ruby on Rails
      Eric Berry
      cavneb@gmail.com
      Twitter: @cavneb
      SolidCoreSolutions.com
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.

     PHP            C#            Java        Python
     Zend          ASP.net        Spring        web2py
    CakePHP                       Struts        Django,
   CodeIgniter                      Stripes   TurboGears
    symfony                      Tapestry       Pylons
     Zoop                        Hivemind        Zope
     Akelos                        JBoss        Quixote
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.

   Ruby         PHP         C#         Java        Python
     Rails      Zend        ASP.net    Spring        web2py
    Sinatra    CakePHP                 Struts        Django,
    Merb*     CodeIgniter                Stripes   TurboGears
               symfony                Tapestry       Pylons
                Zoop                  Hivemind        Zope
                Akelos                  JBoss        Quixote
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.
Ruby on Rails
Ruby on Rails is an open-source web framework that’s
optimized for programmer happiness and sustainable
productivity. It lets you write beautiful code by favoring
convention over configuration.

  “Software design paradigm which seeks to decrease
  the number of decisions that developers need to
  make, gaining simplicity, but not necessarily losing
  flexibility.”
Who uses Rails?
Who uses Rails?
‣ Twitter.com (35 Alexa)
‣ Scribd.com (150)
‣ Hulu.com (224)
‣ Justin.tv (231)
‣ YellowPages.com (641)
‣ CookPad.com (696)
‣ AboutUs.org (761)
‣ UrbanDictionary.com (770)
‣ Spock.com (1689)
‣ Jango.com (2088)
‣ iLike.com (2161)
‣ FunnyOrDie.com (2814)
Who uses Rails?
‣ Twitter.com (35 Alexa)      “Ruby on Rails is known for its ability to
‣ Scribd.com (150)            build Web applications quickly and with
                              ease. For first-time users of Java, it could
‣ Hulu.com (224)              take about five to ten days to build a
‣ Justin.tv (231)             moderately useful Web application that will
                              communicate with a database using
‣ YellowPages.com (641)       accepted Java Web best-practices such as
‣ CookPad.com (696)           separating business logic, from display logic
‣ AboutUs.org (761)           (commonly referred to as Model-View-
                              Controller). With no prior training on Ruby
‣ UrbanDictionary.com (770)   on Rails, it takes about one day to
‣ Spock.com (1689)            accomplish the same goal using the Ruby
                              programming language. In several more
‣ Jango.com (2088)            days, it is possible to build a relatively
‣ iLike.com (2161)            complete Web application with Ruby on
                              Rails.”
‣ FunnyOrDie.com (2814)
                              http://www.developerfusion.com/column/7092/ruby-on-rails-deserves-the-hype/2/
Why use Rails?
Why use Rails?
• Productive within minutes, not weeks.
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
• Database persistence with Active Record
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
• Database persistence with Active Record
• Simple AJAX integration
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
• Database persistence with Active Record
• Simple AJAX integration
• Enables Agile practices
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
• Database persistence with Active Record
• Simple AJAX integration
• Enables Agile practices
• Generators
Why use Rails?
• Productive within minutes, not weeks.
• Convention over configuration
• 100% object oriented
• Use templates for html, email, xml, etc.
• Database persistence with Active Record
• Simple AJAX integration
• Enables Agile practices
• Generators
• Community
Is Ruby on Rails
always the solution?
NO!
Why NOT use Rails?
Why NOT use Rails?
• Not as widely accepted as Tomcat or .NET
Why NOT use Rails?
• Not as widely accepted as Tomcat or .NET
• Not a compiled language
Why NOT use Rails?
• Not as widely accepted as Tomcat or .NET
• Not a compiled language
• Primarily used for web applications
Why NOT use Rails?
• Not as widely accepted as Tomcat or .NET
• Not a compiled language
• Primarily used for web applications
• You can get a false sense of productivity
  when following the examples. Typical real-
  world projects are more complex
And now for something
 completely different...
See more at http://railsenvy.com/tags/Commercials
MVC
Model
View
Controller
Model
Object that represents a table column within a database.
View
HTML code that is rendered to the browser.
Controller
Middle man between the views and models.
MVC with Rails
MVC with Rails
     a
     p
     a
     c
     h    Controller
     e
MVC with Rails
     a
            View
     p
     a
     c
     h    Controller
     e


            Model
MVC with Rails
     a
            View
     p
     a
     c
     h    Controller
     e


            Model
MVC with Rails
     a
             View
     p
     a
     c
     h    Routes
     e


           Controller



             Model
MVC with Rails
  a
          View       Helpers
  p
  a
  c
  h    Routes
  e


        Controller



          Model
MVC with Rails
 a



     Rack Middleware
                          View       Helpers
 p
 a
 c
 h                     Routes
 e


                        Controller



                          Model
MVC with Rails
 a



     Rack Middleware
                          View       Helpers
 p
 a
 c
 h                     Routes
 e


                        Controller



                          Model
Installation
                           Ruby


Pre-packaged with OS X 10.5+




$ yum install ruby irb rdoc
$ apt-get install ruby irb rdoc



Download 1-Click installer from
http://www.ruby-lang.org
Installation
                    RubyGems


Download from http://rubygems.org and install




Download from http://rubygems.org and install




Download from http://rubygems.org and install
or make sure that when you install Ruby, you opt ‘Enable RubyGems’
Installation
                           Rails


$ sudo gem install rails




$ sudo gem install rails




C:> gem install rails
Create a Rails App
$ rails my_app
Create a Rails App
$ rails my_app
       app     - home of models, views and controllers
    config      - db, deployment, environment settings
         db    - migrations and schema
      doc      - rdocs and other documentation
         lib   - custom code and rake tasks
        log    - logs for all environments
    public     - public
    script     - ruby scripts (generate, plugin, etc)
      test     - home for all testing files (unit, functional, etc)
      tmp      - temp folder
   vendor      - home for plugins and gems
Let’s give away a book!

More Related Content

What's hot

An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystemGeison Goes
 
Cooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with JitterbugCooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with JitterbugDavid Golden
 
Rails Engine Patterns
Rails Engine PatternsRails Engine Patterns
Rails Engine PatternsAndy Maleh
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSource Conference
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Coremohamed elshafey
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular applicationmirrec
 
Capybara and cucumber with DSL using ruby
Capybara and cucumber with DSL using rubyCapybara and cucumber with DSL using ruby
Capybara and cucumber with DSL using rubyDeepak Chandella
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudMassimiliano Dessì
 
Building RESTful APIs w/ Grape
Building RESTful APIs w/ GrapeBuilding RESTful APIs w/ Grape
Building RESTful APIs w/ GrapeDaniel Doubrovkine
 
Corso su ReactJS
Corso su ReactJSCorso su ReactJS
Corso su ReactJSLinkMe Srl
 
Utiliser Webpack dans une application Symfony
Utiliser Webpack dans une application SymfonyUtiliser Webpack dans une application Symfony
Utiliser Webpack dans une application SymfonyAlain Hippolyte
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.catPablo Godel
 
Scaling Rails With Torquebox Presented at JUDCon:2011 Boston
Scaling Rails With Torquebox Presented at JUDCon:2011 BostonScaling Rails With Torquebox Presented at JUDCon:2011 Boston
Scaling Rails With Torquebox Presented at JUDCon:2011 Bostonbenbrowning
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionJoe Ferguson
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingFelix Meschberger
 
Paving the way to a native Sling
Paving the way to a native SlingPaving the way to a native Sling
Paving the way to a native SlingRadu Cotescu
 

What's hot (20)

Dev streams2
Dev streams2Dev streams2
Dev streams2
 
An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystem
 
Cooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with JitterbugCooking Perl with Chef: Real World Tutorial with Jitterbug
Cooking Perl with Chef: Real World Tutorial with Jitterbug
 
Rails Engine Patterns
Rails Engine PatternsRails Engine Patterns
Rails Engine Patterns
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
 
Asp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework CoreAsp.Net Core MVC , Razor page , Entity Framework Core
Asp.Net Core MVC , Razor page , Entity Framework Core
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
 
Capybara and cucumber with DSL using ruby
Capybara and cucumber with DSL using rubyCapybara and cucumber with DSL using ruby
Capybara and cucumber with DSL using ruby
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
 
Presentation laravel 5 4
Presentation laravel 5 4Presentation laravel 5 4
Presentation laravel 5 4
 
Building RESTful APIs w/ Grape
Building RESTful APIs w/ GrapeBuilding RESTful APIs w/ Grape
Building RESTful APIs w/ Grape
 
Corso su ReactJS
Corso su ReactJSCorso su ReactJS
Corso su ReactJS
 
Ruby On Grape
Ruby On GrapeRuby On Grape
Ruby On Grape
 
Utiliser Webpack dans une application Symfony
Utiliser Webpack dans une application SymfonyUtiliser Webpack dans une application Symfony
Utiliser Webpack dans une application Symfony
 
Full slidescr16
Full slidescr16Full slidescr16
Full slidescr16
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
 
Scaling Rails With Torquebox Presented at JUDCon:2011 Boston
Scaling Rails With Torquebox Presented at JUDCon:2011 BostonScaling Rails With Torquebox Presented at JUDCon:2011 Boston
Scaling Rails With Torquebox Presented at JUDCon:2011 Boston
 
Laravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello ProductionLaravel Forge: Hello World to Hello Production
Laravel Forge: Hello World to Hello Production
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
 
Paving the way to a native Sling
Paving the way to a native SlingPaving the way to a native Sling
Paving the way to a native Sling
 

Similar to Ruby On Rails

Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010arif44
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to railsEvgeniy Hinyuk
 
Introduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy HinyukIntroduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy HinyukPivorak MeetUp
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHPGautam Rege
 
Demystifying Ruby on Rails
Demystifying Ruby on Rails Demystifying Ruby on Rails
Demystifying Ruby on Rails Johan Pretorius
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overviewjonkinney
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on RailsViridians
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsiradarji
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on RailsAlessandro DS
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Nilesh Panchal
 
Ruby on Rails best resources for self
Ruby on Rails best resources for selfRuby on Rails best resources for self
Ruby on Rails best resources for selfDurga Prasad Tumu
 

Similar to Ruby On Rails (20)

Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010Ruby On Rails Seminar Basis Softexpo Feb2010
Ruby On Rails Seminar Basis Softexpo Feb2010
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to rails
 
Introduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy HinyukIntroduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy Hinyuk
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
 
Demystifying Ruby on Rails
Demystifying Ruby on Rails Demystifying Ruby on Rails
Demystifying Ruby on Rails
 
Ishani-D
Ishani-DIshani-D
Ishani-D
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overview
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
RubyonRails
RubyonRailsRubyonRails
RubyonRails
 
Learning Rails
Learning RailsLearning Rails
Learning Rails
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
 
Ruby on Rails best resources for self
Ruby on Rails best resources for selfRuby on Rails best resources for self
Ruby on Rails best resources for self
 

Recently uploaded

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 

Recently uploaded (20)

Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 

Ruby On Rails

  • 1. Ruby on Rails Eric Berry cavneb@gmail.com Twitter: @cavneb SolidCoreSolutions.com
  • 2. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.
  • 3. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.
  • 4. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. PHP C# Java Python Zend ASP.net Spring web2py CakePHP Struts Django, CodeIgniter Stripes TurboGears symfony Tapestry Pylons Zoop Hivemind Zope Akelos JBoss Quixote
  • 5. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. Ruby PHP C# Java Python Rails Zend ASP.net Spring web2py Sinatra CakePHP Struts Django, Merb* CodeIgniter Stripes TurboGears symfony Tapestry Pylons Zoop Hivemind Zope Akelos JBoss Quixote
  • 6. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration.
  • 7. Ruby on Rails Ruby on Rails is an open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. “Software design paradigm which seeks to decrease the number of decisions that developers need to make, gaining simplicity, but not necessarily losing flexibility.”
  • 9. Who uses Rails? ‣ Twitter.com (35 Alexa) ‣ Scribd.com (150) ‣ Hulu.com (224) ‣ Justin.tv (231) ‣ YellowPages.com (641) ‣ CookPad.com (696) ‣ AboutUs.org (761) ‣ UrbanDictionary.com (770) ‣ Spock.com (1689) ‣ Jango.com (2088) ‣ iLike.com (2161) ‣ FunnyOrDie.com (2814)
  • 10. Who uses Rails? ‣ Twitter.com (35 Alexa) “Ruby on Rails is known for its ability to ‣ Scribd.com (150) build Web applications quickly and with ease. For first-time users of Java, it could ‣ Hulu.com (224) take about five to ten days to build a ‣ Justin.tv (231) moderately useful Web application that will communicate with a database using ‣ YellowPages.com (641) accepted Java Web best-practices such as ‣ CookPad.com (696) separating business logic, from display logic ‣ AboutUs.org (761) (commonly referred to as Model-View- Controller). With no prior training on Ruby ‣ UrbanDictionary.com (770) on Rails, it takes about one day to ‣ Spock.com (1689) accomplish the same goal using the Ruby programming language. In several more ‣ Jango.com (2088) days, it is possible to build a relatively ‣ iLike.com (2161) complete Web application with Ruby on Rails.” ‣ FunnyOrDie.com (2814) http://www.developerfusion.com/column/7092/ruby-on-rails-deserves-the-hype/2/
  • 12. Why use Rails? • Productive within minutes, not weeks.
  • 13. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration
  • 14. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented
  • 15. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc.
  • 16. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc. • Database persistence with Active Record
  • 17. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc. • Database persistence with Active Record • Simple AJAX integration
  • 18. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc. • Database persistence with Active Record • Simple AJAX integration • Enables Agile practices
  • 19. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc. • Database persistence with Active Record • Simple AJAX integration • Enables Agile practices • Generators
  • 20. Why use Rails? • Productive within minutes, not weeks. • Convention over configuration • 100% object oriented • Use templates for html, email, xml, etc. • Database persistence with Active Record • Simple AJAX integration • Enables Agile practices • Generators • Community
  • 21. Is Ruby on Rails always the solution?
  • 22. NO!
  • 23. Why NOT use Rails?
  • 24. Why NOT use Rails? • Not as widely accepted as Tomcat or .NET
  • 25. Why NOT use Rails? • Not as widely accepted as Tomcat or .NET • Not a compiled language
  • 26. Why NOT use Rails? • Not as widely accepted as Tomcat or .NET • Not a compiled language • Primarily used for web applications
  • 27. Why NOT use Rails? • Not as widely accepted as Tomcat or .NET • Not a compiled language • Primarily used for web applications • You can get a false sense of productivity when following the examples. Typical real- world projects are more complex
  • 28. And now for something completely different...
  • 29. See more at http://railsenvy.com/tags/Commercials
  • 30. MVC
  • 32. Model Object that represents a table column within a database.
  • 33. View HTML code that is rendered to the browser.
  • 34. Controller Middle man between the views and models.
  • 36. MVC with Rails a p a c h Controller e
  • 37. MVC with Rails a View p a c h Controller e Model
  • 38. MVC with Rails a View p a c h Controller e Model
  • 39. MVC with Rails a View p a c h Routes e Controller Model
  • 40. MVC with Rails a View Helpers p a c h Routes e Controller Model
  • 41. MVC with Rails a Rack Middleware View Helpers p a c h Routes e Controller Model
  • 42. MVC with Rails a Rack Middleware View Helpers p a c h Routes e Controller Model
  • 43. Installation Ruby Pre-packaged with OS X 10.5+ $ yum install ruby irb rdoc $ apt-get install ruby irb rdoc Download 1-Click installer from http://www.ruby-lang.org
  • 44. Installation RubyGems Download from http://rubygems.org and install Download from http://rubygems.org and install Download from http://rubygems.org and install or make sure that when you install Ruby, you opt ‘Enable RubyGems’
  • 45. Installation Rails $ sudo gem install rails $ sudo gem install rails C:> gem install rails
  • 46. Create a Rails App $ rails my_app
  • 47. Create a Rails App $ rails my_app app - home of models, views and controllers config - db, deployment, environment settings db - migrations and schema doc - rdocs and other documentation lib - custom code and rake tasks log - logs for all environments public - public script - ruby scripts (generate, plugin, etc) test - home for all testing files (unit, functional, etc) tmp - temp folder vendor - home for plugins and gems
  • 48. Let’s give away a book!