SlideShare a Scribd company logo
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

Dev streams2
Dev streams2Dev streams2
Dev streams2
David Mc Donagh
 
An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystem
Geison 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 Jitterbug
David Golden
 
Rails Engine Patterns
Rails Engine PatternsRails Engine Patterns
Rails Engine Patterns
Andy Maleh
 
Security Goodness with Ruby on Rails
Security Goodness with Ruby on RailsSecurity Goodness with Ruby on Rails
Security Goodness with Ruby on Rails
Source 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 Core
mohamed elshafey
 
Rails Engine | Modular application
Rails Engine | Modular applicationRails Engine | Modular application
Rails Engine | Modular application
mirrec
 
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
Deepak Chandella
 
Dessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloudDessi docker kubernetes paas cloud
Dessi docker kubernetes paas cloud
Massimiliano Dessì
 
Presentation laravel 5 4
Presentation laravel 5 4Presentation laravel 5 4
Presentation laravel 5 4
Christen Gjølbye Christensen
 
Building RESTful APIs w/ Grape
Building RESTful APIs w/ GrapeBuilding RESTful APIs w/ Grape
Building RESTful APIs w/ Grape
Daniel Doubrovkine
 
Corso su ReactJS
Corso su ReactJSCorso su ReactJS
Corso su ReactJS
LinkMe Srl
 
Ruby On Grape
Ruby On GrapeRuby On Grape
Ruby On Grape
Andrii Furmanets
 
Utiliser Webpack dans une application Symfony
Utiliser Webpack dans une application SymfonyUtiliser Webpack dans une application Symfony
Utiliser Webpack dans une application Symfony
Alain Hippolyte
 
Full slidescr16
Full slidescr16Full slidescr16
Full slidescr16
Lucio Grenzi
 
Deploying Symfony | symfony.cat
Deploying Symfony | symfony.catDeploying Symfony | symfony.cat
Deploying Symfony | symfony.cat
Pablo 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 Boston
benbrowning
 
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
Joe Ferguson
 
Rapid JCR Applications Development with Sling
Rapid JCR Applications Development with SlingRapid JCR Applications Development with Sling
Rapid JCR Applications Development with Sling
Felix 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 Sling
Radu 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 Jan09
Shaer Hassan
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
Gourab Mitra
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
pmashchak
 
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
arif44
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
Jim Jones
 
Introduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy HinyukIntroduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy Hinyuk
Pivorak MeetUp
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to rails
Evgeniy Hinyuk
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
jistr
 
Rails Vs CakePHP
Rails Vs CakePHPRails Vs CakePHP
Rails Vs CakePHP
Gautam Rege
 
Demystifying Ruby on Rails
Demystifying Ruby on Rails Demystifying Ruby on Rails
Demystifying Ruby on Rails
Johan Pretorius
 
Ishani-D
Ishani-DIshani-D
Ishani-D
Ishani Desai
 
Ruby On Rails Overview
Ruby On Rails OverviewRuby On Rails Overview
Ruby On Rails Overview
jonkinney
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
Viridians
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
Gautam Rege
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
iradarji
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
Alessandro DS
 
RubyonRails
RubyonRailsRubyonRails
RubyonRails
webuploader
 
Learning Rails
Learning RailsLearning Rails
Learning Rails
David Francisco
 
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 self
Durga 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
 
Introduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy HinyukIntroduction to Rails by Evgeniy Hinyuk
Introduction to Rails by Evgeniy Hinyuk
 
Lecture #5 Introduction to rails
Lecture #5 Introduction to railsLecture #5 Introduction to rails
Lecture #5 Introduction to rails
 
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

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
innovationoecd
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
panagenda
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
Matthew Sinclair
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
Kari Kakkonen
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
Zilliz
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Safe Software
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
Mariano Tinti
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
shyamraj55
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
DianaGray10
 

Recently uploaded (20)

GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
Presentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of GermanyPresentation of the OECD Artificial Intelligence Review of Germany
Presentation of the OECD Artificial Intelligence Review of Germany
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
HCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAUHCL Notes and Domino License Cost Reduction in the World of DLAU
HCL Notes and Domino License Cost Reduction in the World of DLAU
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
20240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 202420240605 QFM017 Machine Intelligence Reading List May 2024
20240605 QFM017 Machine Intelligence Reading List May 2024
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Climate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing DaysClimate Impact of Software Testing at Nordic Testing Days
Climate Impact of Software Testing at Nordic Testing Days
 
Infrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI modelsInfrastructure Challenges in Scaling RAG with Custom AI models
Infrastructure Challenges in Scaling RAG with Custom AI models
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Driving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success StoryDriving Business Innovation: Latest Generative AI Advancements & Success Story
Driving Business Innovation: Latest Generative AI Advancements & Success Story
 
Mariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceXMariano G Tinti - Decoding SpaceX
Mariano G Tinti - Decoding SpaceX
 
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with SlackLet's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
Let's Integrate MuleSoft RPA, COMPOSER, APM with AWS IDP along with Slack
 
Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1Communications Mining Series - Zero to Hero - Session 1
Communications Mining Series - Zero to Hero - Session 1
 

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!