SlideShare una empresa de Scribd logo
1 de 28
A Tour of Ruby on Rails By David Keener http://www.keenertech.com
But First, Who Am I? ,[object Object],[object Object],[object Object],David Keener I’m a technical architect and writer with over 20  years of experience. Been doing web applications  Since 1997, and Rails applications since version 1.1. Technical Architect for Grab Networks, the company known for streaming the Beijing Olympics over the  web and for distributing more news videos in the US  than any other company except MSNBC. 1
What Is Ruby on Rails? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Rails is an open-source, full-stack MVC framework for developing web-based, database-driven applications. Rails is implemented in the Ruby programming language.  2
Open Source ,[object Object],[object Object],[object Object],[object Object],[object Object],Rails  is… 3
It’s a Full-Stack Framework Rails provides an  integrated  full stack framework. J2EE provides similar functionality with a variety of separate frameworks / tools (each with their own learning curves). 4
MVC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],5
Web-Based, Database-Driven… ,[object Object],[object Object],[object Object],[object Object],Rails is ideal for web applications that do CRUD operations…. (Um, this generally sort of implies a database) 6
Example CRUD App 7
What’s the Big Deal? ,[object Object],[object Object],[object Object],[object Object],8
One picture is worth…. Note: Graphic found on web. 9
The Goals of Rails ,[object Object],[object Object],[object Object],[object Object],To solve any problem, first define the problem clearly. Here’s what the creators of Rails set out to accomplish…  10
The Rails Philosophy ,[object Object],[object Object],[object Object],[object Object],Philosophy separates Rails from other frameworks…. 11
“ Opinionated Software” ,[object Object],[object Object],[object Object],Rails was developed by David Heinemeier Hansson in 2003 (released to the public in 2004). He and the members of the Rails Core Team had definite opinions about what makes a framework good. 12
Primary Rails Features ,[object Object],[object Object],[object Object],[object Object],[object Object],13
Migrations ,[object Object],[object Object],[object Object],[object Object],[object Object],14
An Example Migration ,[object Object],[object Object],class ChangeOperations < ActiveRecord::Migration def self.up add_column  :operations, :org_id, :integer end def self.down remove_column  :operations, :org_id end End 15
Code Generator (1) ,[object Object],[object Object],[object Object],[object Object]
Code Generators (2) ,[object Object],[object Object],[object Object],[object Object],[object Object],You’ll hear a lot about Scaffolding…. 17
Convention Over Configuration ,[object Object],[object Object],[object Object],/app/controllers/products_controller.rb /app/models/product.rb /app/views/products/index.html.erb (plus other CRUD views) /db/migrate/009_create_products.rb /test/unit/product_test.rb 18
Object-Relational Mapping ,[object Object],[object Object],[object Object],This is a fancy term for “how your objects are going to access the database.” 19
Example Model ,[object Object],[object Object],[object Object],class  Product < ActiveRecord::Base end 20
Example Controller Method ,[object Object],[object Object],[object Object],def  index @products = Product.find(:all) end 21
But Wait, There’s More! ,[object Object],[object Object],[object Object],[object Object],22
About Productivity… ,[object Object],[object Object],[object Object],23
Who’s Using It? ,[object Object],[object Object],[object Object],[object Object],[object Object],24
How to Leverage Rails ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],25
Getting Started With Rails ,[object Object],[object Object],[object Object],26
What About Hosting? ,[object Object],[object Object],[object Object],[object Object],[object Object],27

Más contenido relacionado

La actualidad más candente

Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
OdessaJS Conf
 

La actualidad más candente (20)

React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016React on rails v6.1 at LA Ruby, November 2016
React on rails v6.1 at LA Ruby, November 2016
 
TypeScript and SharePoint Framework
TypeScript and SharePoint FrameworkTypeScript and SharePoint Framework
TypeScript and SharePoint Framework
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
 
Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
Rustam Aliyev and Ivan Martynov - From monolith web app to micro-frontends – ...
 
Project Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G SProject Fedena and Why Ruby on Rails - ArvindArvind G S
Project Fedena and Why Ruby on Rails - ArvindArvind G S
 
Intro to React
Intro to ReactIntro to React
Intro to React
 
Understanding asset pipeline plugin
Understanding asset pipeline pluginUnderstanding asset pipeline plugin
Understanding asset pipeline plugin
 
Server rendering-talk
Server rendering-talkServer rendering-talk
Server rendering-talk
 
Render-as-You-Fetch
Render-as-You-FetchRender-as-You-Fetch
Render-as-You-Fetch
 
Play Framework on Google App Engine
Play Framework on Google App EnginePlay Framework on Google App Engine
Play Framework on Google App Engine
 
A Simpler Web App Architecture (jDays 2016)
A Simpler Web App Architecture (jDays 2016)A Simpler Web App Architecture (jDays 2016)
A Simpler Web App Architecture (jDays 2016)
 
Codegen2021 blazor mobile
Codegen2021 blazor mobileCodegen2021 blazor mobile
Codegen2021 blazor mobile
 
Single page App
Single page AppSingle page App
Single page App
 
Modern Web App Architectures
Modern Web App ArchitecturesModern Web App Architectures
Modern Web App Architectures
 
An Intense Overview of the React Ecosystem
An Intense Overview of the React EcosystemAn Intense Overview of the React Ecosystem
An Intense Overview of the React Ecosystem
 
Intro to Ruby on Rails
Intro to Ruby on RailsIntro to Ruby on Rails
Intro to Ruby on Rails
 
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical UniversityASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
ASP.NET MVC, AngularJS CRUD for Azerbaijan Technical University
 
Building solutions with the SharePoint Framework - deep-dive
Building solutions with the SharePoint Framework - deep-diveBuilding solutions with the SharePoint Framework - deep-dive
Building solutions with the SharePoint Framework - deep-dive
 
Symfony2 for Midgard Developers
Symfony2 for Midgard DevelopersSymfony2 for Midgard Developers
Symfony2 for Midgard Developers
 

Destacado

Digital Trails Dave King 1 5 10 Part 2 D3
Digital Trails   Dave King   1 5 10   Part 2   D3Digital Trails   Dave King   1 5 10   Part 2   D3
Digital Trails Dave King 1 5 10 Part 2 D3
Dave King
 
Ultimate Sound And Installations Presentation
Ultimate Sound And Installations PresentationUltimate Sound And Installations Presentation
Ultimate Sound And Installations Presentation
ultisound
 
Cell Mitosis
Cell MitosisCell Mitosis
Cell Mitosis
Max
 
Protocolo De Entrega Do Planejamento
Protocolo De Entrega Do PlanejamentoProtocolo De Entrega Do Planejamento
Protocolo De Entrega Do Planejamento
guest4ec91e
 
The Action Plan
The Action PlanThe Action Plan
The Action Plan
abby20
 
2period ReviewANDANSWERS
2period ReviewANDANSWERS2period ReviewANDANSWERS
2period ReviewANDANSWERS
mrsbere
 
Lok Ragini - Aaj Ke Haalat
Lok Ragini  -  Aaj Ke Haalat Lok Ragini  -  Aaj Ke Haalat
Lok Ragini - Aaj Ke Haalat
Mool Chand
 
107081014 H51 电动机枪拆卸
107081014 H51 电动机枪拆卸107081014 H51 电动机枪拆卸
107081014 H51 电动机枪拆卸
zust
 

Destacado (20)

Idioms In English
Idioms In EnglishIdioms In English
Idioms In English
 
Yankee Group White Paper Sip Trunking Uc
Yankee Group White Paper   Sip Trunking  UcYankee Group White Paper   Sip Trunking  Uc
Yankee Group White Paper Sip Trunking Uc
 
Digital Trails Dave King 1 5 10 Part 2 D3
Digital Trails   Dave King   1 5 10   Part 2   D3Digital Trails   Dave King   1 5 10   Part 2   D3
Digital Trails Dave King 1 5 10 Part 2 D3
 
Proof of stock reduction
Proof of stock reduction Proof of stock reduction
Proof of stock reduction
 
Ultimate Sound And Installations Presentation
Ultimate Sound And Installations PresentationUltimate Sound And Installations Presentation
Ultimate Sound And Installations Presentation
 
Cell Mitosis
Cell MitosisCell Mitosis
Cell Mitosis
 
Protocolo De Entrega Do Planejamento
Protocolo De Entrega Do PlanejamentoProtocolo De Entrega Do Planejamento
Protocolo De Entrega Do Planejamento
 
Vanesa And Astrid`S Project
Vanesa And Astrid`S ProjectVanesa And Astrid`S Project
Vanesa And Astrid`S Project
 
Flu Prevention and Self-Care at UNH
Flu Prevention and Self-Care at UNHFlu Prevention and Self-Care at UNH
Flu Prevention and Self-Care at UNH
 
The Action Plan
The Action PlanThe Action Plan
The Action Plan
 
Mobile Analytics
Mobile AnalyticsMobile Analytics
Mobile Analytics
 
Building a... Better? Summer Reading
Building a... Better? Summer ReadingBuilding a... Better? Summer Reading
Building a... Better? Summer Reading
 
2period ReviewANDANSWERS
2period ReviewANDANSWERS2period ReviewANDANSWERS
2period ReviewANDANSWERS
 
Lok Ragini - Aaj Ke Haalat
Lok Ragini  -  Aaj Ke Haalat Lok Ragini  -  Aaj Ke Haalat
Lok Ragini - Aaj Ke Haalat
 
Συμμετοχή του 6ου Γυμνασίου Σερρών στον Διαγωνισμό Επιχειρηματικότητας 2015-2...
Συμμετοχή του 6ου Γυμνασίου Σερρών στον Διαγωνισμό Επιχειρηματικότητας 2015-2...Συμμετοχή του 6ου Γυμνασίου Σερρών στον Διαγωνισμό Επιχειρηματικότητας 2015-2...
Συμμετοχή του 6ου Γυμνασίου Σερρών στον Διαγωνισμό Επιχειρηματικότητας 2015-2...
 
Text mining and analytics v6 - p1
Text mining and analytics   v6 - p1Text mining and analytics   v6 - p1
Text mining and analytics v6 - p1
 
CD Covers
CD CoversCD Covers
CD Covers
 
107081014 H51 电动机枪拆卸
107081014 H51 电动机枪拆卸107081014 H51 电动机枪拆卸
107081014 H51 电动机枪拆卸
 
SharePoint Project Work
SharePoint Project WorkSharePoint Project Work
SharePoint Project Work
 
Giang Sinh1
Giang Sinh1Giang Sinh1
Giang Sinh1
 

Similar a A Tour of Ruby On Rails

Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
Ayesha Siddika
 
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
 
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
cNguyn506241
 
Building Application With Ruby On Rails Framework
Building Application With Ruby On Rails FrameworkBuilding Application With Ruby On Rails Framework
Building Application With Ruby On Rails Framework
Vineet Chaturvedi
 

Similar a A Tour of Ruby On Rails (20)

Rails Concept
Rails ConceptRails Concept
Rails Concept
 
Aspose pdf
Aspose pdfAspose pdf
Aspose pdf
 
Ruby Rails Web Development
Ruby Rails Web DevelopmentRuby Rails Web Development
Ruby Rails Web Development
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
 
Viridians on Rails
Viridians on RailsViridians on Rails
Viridians on Rails
 
Ruby Rails Web Development.pdf
Ruby Rails Web Development.pdfRuby Rails Web Development.pdf
Ruby Rails Web Development.pdf
 
RubyonRails
RubyonRailsRubyonRails
RubyonRails
 
Building Application with Ruby On Rails Framework
Building Application with Ruby On Rails FrameworkBuilding Application with Ruby On Rails Framework
Building Application with Ruby On Rails Framework
 
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
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Quick Start: Rails
Quick Start: RailsQuick Start: Rails
Quick Start: Rails
 
Beyond rails new
Beyond rails newBeyond rails new
Beyond rails new
 
Ruby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User GroupRuby On Rails - Rochester K Linux User Group
Ruby On Rails - Rochester K Linux User Group
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
The Birth and Evolution of Ruby on Rails
The Birth and Evolution of Ruby on RailsThe Birth and Evolution of Ruby on Rails
The Birth and Evolution of Ruby on Rails
 
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
49.INS2065.Computer Based Technologies.TA.NguyenDucAnh.pdf
 
Building Application With Ruby On Rails Framework
Building Application With Ruby On Rails FrameworkBuilding Application With Ruby On Rails Framework
Building Application With Ruby On Rails Framework
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
Ruby On Rails Basics
Ruby On Rails BasicsRuby On Rails Basics
Ruby On Rails Basics
 
Why Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdfWhy Use Ruby On Rails.pdf
Why Use Ruby On Rails.pdf
 

Más de David Keener

Más de David Keener (19)

Writing Killer Fight Scenes
Writing Killer Fight ScenesWriting Killer Fight Scenes
Writing Killer Fight Scenes
 
Build a Space Battle
Build a Space BattleBuild a Space Battle
Build a Space Battle
 
Creating an Adaptive Setting
Creating an Adaptive SettingCreating an Adaptive Setting
Creating an Adaptive Setting
 
Public Speaking for Writers
Public Speaking for WritersPublic Speaking for Writers
Public Speaking for Writers
 
21st Century Writer
21st Century Writer21st Century Writer
21st Century Writer
 
Titanic: The Forgotten Passengers
Titanic: The Forgotten PassengersTitanic: The Forgotten Passengers
Titanic: The Forgotten Passengers
 
Rails Tips and Best Practices
Rails Tips and Best PracticesRails Tips and Best Practices
Rails Tips and Best Practices
 
Elevator Up, Please!
Elevator Up, Please!Elevator Up, Please!
Elevator Up, Please!
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
 
Killer Business Models
Killer Business ModelsKiller Business Models
Killer Business Models
 
Rails Security
Rails SecurityRails Security
Rails Security
 
Building Facebook Apps
Building Facebook AppsBuilding Facebook Apps
Building Facebook Apps
 
Leveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook AppsLeveraging Rails to Build Facebook Apps
Leveraging Rails to Build Facebook Apps
 
Creating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector GraphicsCreating Custom Charts With Ruby Vector Graphics
Creating Custom Charts With Ruby Vector Graphics
 
Using Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case StudyUsing Rails to Create an Enterprise App: A Real-Life Case Study
Using Rails to Create an Enterprise App: A Real-Life Case Study
 
Practical JRuby
Practical JRubyPractical JRuby
Practical JRuby
 
Implementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking SiteImplementing OpenID for Your Social Networking Site
Implementing OpenID for Your Social Networking Site
 
Creating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChartCreating Dynamic Charts With JFreeChart
Creating Dynamic Charts With JFreeChart
 
Creating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services APICreating a World-Class RESTful Web Services API
Creating a World-Class RESTful Web Services API
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

A Tour of Ruby On Rails

  • 1. A Tour of Ruby on Rails By David Keener http://www.keenertech.com
  • 2.
  • 3.
  • 4.
  • 5. It’s a Full-Stack Framework Rails provides an integrated full stack framework. J2EE provides similar functionality with a variety of separate frameworks / tools (each with their own learning curves). 4
  • 6.
  • 7.
  • 9.
  • 10. One picture is worth…. Note: Graphic found on web. 9
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.