SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Athens
Ruby
Meetup
#4
Rails 3:
Derailing
Rails
Panagiotis Papadopoulos
@panosjee
http://6pna.com
Merb and Rails merge announced on December 23
2008
The hell freezed
High Expectations
Two and a half years later the merge is complete
A lot of new committers
Significant efforts by the Merb creator Yehuda Katz
Lots of rewrites
A new beast
New tricks to learn
More power to developers
Less opinionated thus derailed but still using strong
conventions
Less monkey patching (oh yes)
The story after Rails 3
Many people accused Rails of
being spaghetti code
Not any more...
Django infuelnces...
Less monkey patching.
The code is well organized and
modular.
You can reuse the components
you want, add yours and create
the Rails you want, ala carte
* you can always monkey patch, do
not worry!
Rails 3 is a top Rack citizen. You can mount any Rack or
even Sinatra in your app.
It is as simple as that:
Store::Application.routes.draw do |map|
root :to => proc { |env| [200, {}, ["Welcome"]] }
end
Or if you want a custom controller:
In your routes.rb
match "/processes" => ProcessesApp
In lib/process_app.rb
class ProcessesApp < ActionController::Metal
include ActionController::Rendering
Pure Rack Goodness
New Responders, less verbose
def new
@product = Product.new
respond_with @product
end
Redirect shortcuts
redirect_to @product, :
notice => "Successfully created
Permanent Cookies
Custom responeders
No more Metal, you can create your own controllers
Controllers in Rails 3
No more gem.config in environment.rb
Anyway all this code is moved to application.rb
But your gem dependencies now live in Gemfile
Bundler is the new way to solve the dependency hell
problem.
Bundler locks all used gems so when you clone the
project you get the same exactly gems and
dependencies
# Edit this Gemfile to bundle your application's dependencies.
source 'http://gemcutter.org'
gem "rails", "3.0.0.beta"
# ActiveRecord requires a database adapter. By default,
# Rails has selected sqlite3.
gem "sqlite3-ruby", :require => "sqlite3"
Gem dependecies. Bundler.
Forget script, say hello to rails
New Generators and Commands
Generators help you create *YOUR* convetions
The new ActionMailer is descentant of ActionController so
you no longer have to mixin your models and mailers.
class UserMailer < ActionMailer::Base
default :from => "eifion@asciicasts.com"
def registration_confirmation(user)
mail(:to => user.email, :subject => "Registered")
end
end
A new ActionMailer! At last!
Everything is escaped by default. Use <%=raw %> if
you want markup in your views.
First of all Rails 3 is not tight to Prototype. It is still the
default but you can use easily any major Javascript
library.
All helpers produce UJS code
In your views:
<%= link_to "Destroy", @product, :confirm => "Are you sure?", :method => :delete %>
Produces the following html code:
<a href="/products/8" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a>
Unobtrusive JS using HTML5, XSS Security
ActiveRecord inherits from ActiveModel
You can use ActiveModel to build your own ORM
compatible with Rails
Query language is now AReL
Chain everything!
More details by Savvas
ActiveRecord
An awesome way to extend Rails apps!
Build plugins in no time!
Source: http://www.igvita.com/2010/08/04/rails-3-internals-railtie-creating-plugins/
Railties
Rails 3 bring
more options to
developers and
a better API to
build upon.
You still have
the Golden Path
or the Rails
defaults but you
face less
restrictions on
how to build
stuff
Huge performance gains
You better start off with
Ruby 1.9 using RVM
so that you migrate to
the new Ruby stack
Be careful with your gem and plugins selections, things are a
bit... edgy
Tested against other major
VMs such as Ruby 1.8, 1.9,
JRuby, Rubinious
Thank You!
@panosjee

Weitere ähnliche Inhalte

Was ist angesagt?

1時間で作るマッシュアップサービス(関西版)
1時間で作るマッシュアップサービス(関西版)1時間で作るマッシュアップサービス(関西版)
1時間で作るマッシュアップサービス(関西版)Yuichiro MASUI
 
CakePHP SessionAcl Component
CakePHP SessionAcl ComponentCakePHP SessionAcl Component
CakePHP SessionAcl ComponentTakashi Nojima
 
Gigigo Rails Workshop
Gigigo Rails WorkshopGigigo Rails Workshop
Gigigo Rails WorkshopAlex Rupérez
 
Deploying Rails Apps with Capistrano
Deploying Rails Apps with CapistranoDeploying Rails Apps with Capistrano
Deploying Rails Apps with CapistranoNyros Technologies
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingGianluca Arbezzano
 
Apikit in studio
Apikit in studioApikit in studio
Apikit in studiofedefortin
 
Web service with Laravel
Web service with LaravelWeb service with Laravel
Web service with LaravelAbuzer Firdousi
 
Top laravel packages to install handpicked list from expert
Top laravel packages to install handpicked list from expertTop laravel packages to install handpicked list from expert
Top laravel packages to install handpicked list from expertKaty Slemon
 
Angular & rails
Angular & railsAngular & rails
Angular & railsneodynamic
 
Task scheduling in laravel 8 tutorial
Task scheduling in laravel 8 tutorialTask scheduling in laravel 8 tutorial
Task scheduling in laravel 8 tutorialKaty Slemon
 
Be happy with Ruby on Rails - CEUNSP Itu
Be happy with Ruby on Rails - CEUNSP ItuBe happy with Ruby on Rails - CEUNSP Itu
Be happy with Ruby on Rails - CEUNSP ItuLucas Renan
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJSBlake Newman
 
RoR 101: Session 5
RoR 101: Session 5RoR 101: Session 5
RoR 101: Session 5Rory Gianni
 

Was ist angesagt? (19)

Rack
RackRack
Rack
 
Cocoa on-rails-3rd
Cocoa on-rails-3rdCocoa on-rails-3rd
Cocoa on-rails-3rd
 
Rail3 intro 29th_sep_surendran
Rail3 intro 29th_sep_surendranRail3 intro 29th_sep_surendran
Rail3 intro 29th_sep_surendran
 
1時間で作るマッシュアップサービス(関西版)
1時間で作るマッシュアップサービス(関西版)1時間で作るマッシュアップサービス(関西版)
1時間で作るマッシュアップサービス(関西版)
 
CakePHP SessionAcl Component
CakePHP SessionAcl ComponentCakePHP SessionAcl Component
CakePHP SessionAcl Component
 
Gigigo Rails Workshop
Gigigo Rails WorkshopGigigo Rails Workshop
Gigigo Rails Workshop
 
Deploying Rails Apps with Capistrano
Deploying Rails Apps with CapistranoDeploying Rails Apps with Capistrano
Deploying Rails Apps with Capistrano
 
ZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everythingZfDayIt 2014 - There is a module for everything
ZfDayIt 2014 - There is a module for everything
 
Apikit in studio
Apikit in studioApikit in studio
Apikit in studio
 
Web service with Laravel
Web service with LaravelWeb service with Laravel
Web service with Laravel
 
Top laravel packages to install handpicked list from expert
Top laravel packages to install handpicked list from expertTop laravel packages to install handpicked list from expert
Top laravel packages to install handpicked list from expert
 
Angular & rails
Angular & railsAngular & rails
Angular & rails
 
Task scheduling in laravel 8 tutorial
Task scheduling in laravel 8 tutorialTask scheduling in laravel 8 tutorial
Task scheduling in laravel 8 tutorial
 
Rails 3
Rails 3Rails 3
Rails 3
 
Be happy with Ruby on Rails - CEUNSP Itu
Be happy with Ruby on Rails - CEUNSP ItuBe happy with Ruby on Rails - CEUNSP Itu
Be happy with Ruby on Rails - CEUNSP Itu
 
Laravel Restful API and AngularJS
Laravel Restful API and AngularJSLaravel Restful API and AngularJS
Laravel Restful API and AngularJS
 
Sinatra
SinatraSinatra
Sinatra
 
RoR 101: Session 5
RoR 101: Session 5RoR 101: Session 5
RoR 101: Session 5
 
Sinatra
SinatraSinatra
Sinatra
 

Andere mochten auch

Fundamental Analysis & Analyst Recommendations - DAXglobal® China Urbanization
Fundamental Analysis & Analyst Recommendations - DAXglobal® China UrbanizationFundamental Analysis & Analyst Recommendations - DAXglobal® China Urbanization
Fundamental Analysis & Analyst Recommendations - DAXglobal® China UrbanizationBCV
 
Sakai11 Citations BOF Introductory Slides
Sakai11 Citations BOF Introductory SlidesSakai11 Citations BOF Introductory Slides
Sakai11 Citations BOF Introductory SlidesJon W. Dunn
 
Fundamental Equity Analysis - World Gold Miners
Fundamental Equity Analysis - World Gold MinersFundamental Equity Analysis - World Gold Miners
Fundamental Equity Analysis - World Gold MinersBCV
 
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)BCV
 
Financial Analysis - Kubota corporation manufactures industrial machinery,…
Financial Analysis - Kubota corporation manufactures industrial machinery,…Financial Analysis - Kubota corporation manufactures industrial machinery,…
Financial Analysis - Kubota corporation manufactures industrial machinery,…BCV
 
Hied blackboard dell_whitepaper
Hied blackboard dell_whitepaperHied blackboard dell_whitepaper
Hied blackboard dell_whitepaperSteve Feldman
 
Financial Analysis - China Communications Construction Company Ltd. is a tran...
Financial Analysis - China Communications Construction Company Ltd. is a tran...Financial Analysis - China Communications Construction Company Ltd. is a tran...
Financial Analysis - China Communications Construction Company Ltd. is a tran...BCV
 
Ruby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MeRuby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MePanagiotis Papadopoulos
 
Project Connect: Connect and Collaborate Session A- October 1
Project Connect: Connect and Collaborate Session A- October 1Project Connect: Connect and Collaborate Session A- October 1
Project Connect: Connect and Collaborate Session A- October 1Terri Sallee
 
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...BCV
 
D&B Business Verification API Code Sample in C#
D&B Business Verification API Code Sample in C#D&B Business Verification API Code Sample in C#
D&B Business Verification API Code Sample in C#Lynn Langit
 

Andere mochten auch (15)

Fundamental Analysis & Analyst Recommendations - DAXglobal® China Urbanization
Fundamental Analysis & Analyst Recommendations - DAXglobal® China UrbanizationFundamental Analysis & Analyst Recommendations - DAXglobal® China Urbanization
Fundamental Analysis & Analyst Recommendations - DAXglobal® China Urbanization
 
Sakai11 Citations BOF Introductory Slides
Sakai11 Citations BOF Introductory SlidesSakai11 Citations BOF Introductory Slides
Sakai11 Citations BOF Introductory Slides
 
Science Sandbox
Science SandboxScience Sandbox
Science Sandbox
 
Fundamental Equity Analysis - World Gold Miners
Fundamental Equity Analysis - World Gold MinersFundamental Equity Analysis - World Gold Miners
Fundamental Equity Analysis - World Gold Miners
 
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)
Fundamental Equity Analysis - TOPIX 100 Index Members (TPX100 Index)
 
Financial Analysis - Kubota corporation manufactures industrial machinery,…
Financial Analysis - Kubota corporation manufactures industrial machinery,…Financial Analysis - Kubota corporation manufactures industrial machinery,…
Financial Analysis - Kubota corporation manufactures industrial machinery,…
 
Hied blackboard dell_whitepaper
Hied blackboard dell_whitepaperHied blackboard dell_whitepaper
Hied blackboard dell_whitepaper
 
Zensko Telo
Zensko TeloZensko Telo
Zensko Telo
 
Financial Analysis - China Communications Construction Company Ltd. is a tran...
Financial Analysis - China Communications Construction Company Ltd. is a tran...Financial Analysis - China Communications Construction Company Ltd. is a tran...
Financial Analysis - China Communications Construction Company Ltd. is a tran...
 
Ruby openfest
Ruby openfestRuby openfest
Ruby openfest
 
Sfalma Pitch
Sfalma PitchSfalma Pitch
Sfalma Pitch
 
Ruby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby MeRuby On Google App Engine 2nd Athens Ruby Me
Ruby On Google App Engine 2nd Athens Ruby Me
 
Project Connect: Connect and Collaborate Session A- October 1
Project Connect: Connect and Collaborate Session A- October 1Project Connect: Connect and Collaborate Session A- October 1
Project Connect: Connect and Collaborate Session A- October 1
 
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...
Financial Analysis - Banque Cantonale Vaudoise - Banque Cantonale Vaudoise (B...
 
D&B Business Verification API Code Sample in C#
D&B Business Verification API Code Sample in C#D&B Business Verification API Code Sample in C#
D&B Business Verification API Code Sample in C#
 

Ähnlich wie Derailing rails

Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Tse-Ching Ho
 
Migrating Legacy Rails Apps to Rails 3
Migrating Legacy Rails Apps to Rails 3Migrating Legacy Rails Apps to Rails 3
Migrating Legacy Rails Apps to Rails 3Clinton Dreisbach
 
Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Umair Amjad
 
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman OrtegaIntroduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortegaarman o
 
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...Matt Gauger
 
Rails web api 开发
Rails web api 开发Rails web api 开发
Rails web api 开发shaokun
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On RailsSteve Keener
 
Get Going With RVM and Rails 3
Get Going With RVM and Rails 3Get Going With RVM and Rails 3
Get Going With RVM and Rails 3Karmen Blake
 
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?Srijan Technologies
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteDr Nic Williams
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011Fabio Akita
 
Ruby off Rails (english)
Ruby off Rails (english)Ruby off Rails (english)
Ruby off Rails (english)Stoyan Zhekov
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails DevsDiacode
 

Ähnlich wie Derailing rails (20)

Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817Rails-3-app-auto-generator-20100817
Rails-3-app-auto-generator-20100817
 
Migrating Legacy Rails Apps to Rails 3
Migrating Legacy Rails Apps to Rails 3Migrating Legacy Rails Apps to Rails 3
Migrating Legacy Rails Apps to Rails 3
 
Migration from Rails2 to Rails3
Migration from Rails2 to Rails3Migration from Rails2 to Rails3
Migration from Rails2 to Rails3
 
Rails3 changesets
Rails3 changesetsRails3 changesets
Rails3 changesets
 
Introduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman OrtegaIntroduction to Rails - presented by Arman Ortega
Introduction to Rails - presented by Arman Ortega
 
Create a new project in ROR
Create a new project in RORCreate a new project in ROR
Create a new project in ROR
 
rails.html
rails.htmlrails.html
rails.html
 
rails.html
rails.htmlrails.html
rails.html
 
Supa fast Ruby + Rails
Supa fast Ruby + RailsSupa fast Ruby + Rails
Supa fast Ruby + Rails
 
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
What's new and great in Rails 3 - Matt Gauger - Milwaukee Ruby Users Group De...
 
Speedy TDD with Rails
Speedy TDD with RailsSpeedy TDD with Rails
Speedy TDD with Rails
 
Rails web api 开发
Rails web api 开发Rails web api 开发
Rails web api 开发
 
Introduction To Ruby On Rails
Introduction To Ruby On RailsIntroduction To Ruby On Rails
Introduction To Ruby On Rails
 
Get Going With RVM and Rails 3
Get Going With RVM and Rails 3Get Going With RVM and Rails 3
Get Going With RVM and Rails 3
 
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
[Srijan Wednesday Webinar] Rails 5: What's in It for Me?
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
Ruby off Rails (english)
Ruby off Rails (english)Ruby off Rails (english)
Ruby off Rails (english)
 
Phoenix for Rails Devs
Phoenix for Rails DevsPhoenix for Rails Devs
Phoenix for Rails Devs
 

Kürzlich hochgeladen

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dashnarutouzumaki53779
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
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
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...AliaaTarek5
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
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
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Visualising and forecasting stocks using Dash
Visualising and forecasting stocks using DashVisualising and forecasting stocks using Dash
Visualising and forecasting stocks using Dash
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
(How to Program) Paul Deitel, Harvey Deitel-Java How to Program, Early Object...
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
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
 
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
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 

Derailing rails

  • 2. Merb and Rails merge announced on December 23 2008 The hell freezed High Expectations Two and a half years later the merge is complete A lot of new committers Significant efforts by the Merb creator Yehuda Katz Lots of rewrites A new beast New tricks to learn More power to developers Less opinionated thus derailed but still using strong conventions Less monkey patching (oh yes) The story after Rails 3
  • 3. Many people accused Rails of being spaghetti code
  • 4. Not any more... Django infuelnces...
  • 5. Less monkey patching. The code is well organized and modular. You can reuse the components you want, add yours and create the Rails you want, ala carte * you can always monkey patch, do not worry!
  • 6. Rails 3 is a top Rack citizen. You can mount any Rack or even Sinatra in your app. It is as simple as that: Store::Application.routes.draw do |map| root :to => proc { |env| [200, {}, ["Welcome"]] } end Or if you want a custom controller: In your routes.rb match "/processes" => ProcessesApp In lib/process_app.rb class ProcessesApp < ActionController::Metal include ActionController::Rendering Pure Rack Goodness
  • 7. New Responders, less verbose def new @product = Product.new respond_with @product end Redirect shortcuts redirect_to @product, : notice => "Successfully created Permanent Cookies Custom responeders No more Metal, you can create your own controllers Controllers in Rails 3
  • 8. No more gem.config in environment.rb Anyway all this code is moved to application.rb But your gem dependencies now live in Gemfile Bundler is the new way to solve the dependency hell problem. Bundler locks all used gems so when you clone the project you get the same exactly gems and dependencies # Edit this Gemfile to bundle your application's dependencies. source 'http://gemcutter.org' gem "rails", "3.0.0.beta" # ActiveRecord requires a database adapter. By default, # Rails has selected sqlite3. gem "sqlite3-ruby", :require => "sqlite3" Gem dependecies. Bundler.
  • 9. Forget script, say hello to rails New Generators and Commands Generators help you create *YOUR* convetions
  • 10. The new ActionMailer is descentant of ActionController so you no longer have to mixin your models and mailers. class UserMailer < ActionMailer::Base default :from => "eifion@asciicasts.com" def registration_confirmation(user) mail(:to => user.email, :subject => "Registered") end end A new ActionMailer! At last!
  • 11. Everything is escaped by default. Use <%=raw %> if you want markup in your views. First of all Rails 3 is not tight to Prototype. It is still the default but you can use easily any major Javascript library. All helpers produce UJS code In your views: <%= link_to "Destroy", @product, :confirm => "Are you sure?", :method => :delete %> Produces the following html code: <a href="/products/8" data-confirm="Are you sure?" data-method="delete" rel="nofollow">Destroy</a> Unobtrusive JS using HTML5, XSS Security
  • 12. ActiveRecord inherits from ActiveModel You can use ActiveModel to build your own ORM compatible with Rails Query language is now AReL Chain everything! More details by Savvas ActiveRecord
  • 13. An awesome way to extend Rails apps! Build plugins in no time! Source: http://www.igvita.com/2010/08/04/rails-3-internals-railtie-creating-plugins/ Railties
  • 14. Rails 3 bring more options to developers and a better API to build upon. You still have the Golden Path or the Rails defaults but you face less restrictions on how to build stuff Huge performance gains You better start off with Ruby 1.9 using RVM so that you migrate to the new Ruby stack Be careful with your gem and plugins selections, things are a bit... edgy Tested against other major VMs such as Ruby 1.8, 1.9, JRuby, Rubinious Thank You! @panosjee