• Like
  • Save
Upgrading to Rails 3
Upcoming SlideShare
Loading in...5
×
 

Upgrading to Rails 3

on

  • 6,074 views

Slides from my OSCON 2010 talk "Upgrading to Rails 3". For more information including a livecoding session of upgrading a simple Rails app from 2.3 to 3, visit http://bit.ly/rails-upgrade-talk

Slides from my OSCON 2010 talk "Upgrading to Rails 3". For more information including a livecoding session of upgrading a simple Rails app from 2.3 to 3, visit http://bit.ly/rails-upgrade-talk

Statistics

Views

Total Views
6,074
Views on SlideShare
5,953
Embed Views
121

Actions

Likes
7
Downloads
106
Comments
1

11 Embeds 121

http://intridea.com 77
http://fejlesztes.atti.la 16
http://www.intridea.com 13
http://staging.intridea.com 5
http://seekr-artemis.heroku.com 3
http://www.oscon.com 2
http://pulpitum.intridea.com 1
http://webcache.googleusercontent.com 1
http://hiperkocka.com 1
http://coderwall.com 1
http://localhost 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Upgrading to Rails 3 Upgrading to Rails 3 Presentation Transcript

    • Upgrading to Rails 3 OSCON 2010 Thursday, July 22, 2010
    • Michael Bleigh @mbleigh OSCON 2010 Thursday, July 22, 2010
    • Thursday, July 22, 2010
    • Jeremy McAnally’s Rails Upgrade Handbook bit.ly/railsupgrade OSCON 2010 Thursday, July 22, 2010
    • Rails 3 is Different OSCON 2010 Thursday, July 22, 2010
    • Rails 3 is a Bi ange OSCON 2010 Thursday, July 22, 2010
    • Why the hell should I bother? OSCON 2010 Thursday, July 22, 2010
    • Modularity OSCON 2010 Thursday, July 22, 2010
    • Rails 2.3 Stack ActiveRecord ActiveSupport ActiveResource ActionPack Test::Unit OSCON 2010 Thursday, July 22, 2010
    • Rails 3 Ecosystem DataMapper ActiveRecord MongoMapper ActiveSupport ActiveResource ActiveModel ActionPack RSpec Bacon Test::Unit OSCON 2010 Thursday, July 22, 2010
    • Rails 2.3 Controller ActionController::Base ApplicationController YourController OSCON 2010 Thursday, July 22, 2010
    • Rails 3 Controller AbstractController::Base ActionController::Metal ActionController::Base ApplicationController YourController OSCON 2010 Thursday, July 22, 2010
    • Less Monkeypatching OSCON 2010 Thursday, July 22, 2010
    • Security darwinbell via Flickr OSCON 2010 Thursday, July 22, 2010
    • small change, big impact OSCON 2010 Thursday, July 22, 2010
    • HTML is escaped by default. OSCON 2010 Thursday, July 22, 2010
    • <!-- Rails 2.3 --> <div class='comment'> <%= comment.body %> </div> <!-- Rails 3 --> <div class="comment"> <%= comment.body.html_safe %> </div> <!-- Rails 3 (alternate) --> <div class="comment"> <%=raw comment.body %> </div> Thursday, July 22, 2010
    • It’s a good thing.TM OSCON 2010 Thursday, July 22, 2010
    • New Apis OSCON 2010 Thursday, July 22, 2010
    • e Router OSCON 2010 Thursday, July 22, 2010
    • Rack Everywhere! OSCON 2010 Thursday, July 22, 2010
    • Fancy New DSL OSCON 2010 Thursday, July 22, 2010
    • More Powerful OSCON 2010 Thursday, July 22, 2010
    • # Rails 2.3 map.connect '/help', :controller => 'pages', :action => 'help' # Rails 3 match '/help', :to => 'pages#help' # Rails 2.3 map.resources :users do |users| users.resources :comments end # Rails 3 resources :users do resources :comments end Thursday, July 22, 2010
    • # Rails 2.3 with_options :path_prefix => 'admin', :name_prefix => 'admin' do |admin| admin.resources :users admin.resources :posts end # Rails 3 namespace :admin resources :users resources :posts end Thursday, July 22, 2010
    • # Rails 3 constraints(:subdomain => 'api') do resources :statuses resources :friends end match '/hello', :to => lambda{ |env| [200, {'Content-Type' => 'text/plain'}, 'Hello World'] } match '/other-site', :to => redirect('http://url.com') Thursday, July 22, 2010
    • A ionMailer OSCON 2010 Thursday, July 22, 2010
    • It’s (mostly) just a controller. OSCON 2010 Thursday, July 22, 2010
    • class Notifier < ActionMailer::Base default :from => "mikel@example.org" def welcome_email(user) @name = user.name attachments['terms.pdf'] = File.read( Rails.root.join('docs/terms.pdf') ) mail(:to => user.email, :subject => "G’day Mate!") end end Thursday, July 22, 2010
    • class UsersController < ApplicationController respond_to :html def create @user = User.new(params[:user]) Notifier.welcome_email(@user).deliver if @user.save respond_with @user end end Thursday, July 22, 2010
    • Bundler OSCON 2010 Thursday, July 22, 2010
    • Caution: Entering Controversy OSCON 2010 Thursday, July 22, 2010
    • # Rails 2.3 # environment.rb config.gem 'acts-as-taggable-on' config.gem 'ruby-openid', :lib => false # test.rb config.gem 'rspec' config.gem 'cucumber' # Rails 3 # Gemfile gem 'acts-as-taggable-on' gem 'ruby-openid', :require => false group :test do gem 'rspec' gem 'cucumber' end Thursday, July 22, 2010
    • Dependency Resolver OSCON 2010 Thursday, July 22, 2010
    • A iveRelation OSCON 2010 Thursday, July 22, 2010
    • Like named scopes, only more so. OSCON 2010 Thursday, July 22, 2010
    • # Rails 2.3 Book.all( :conditions => {:author => "Chuck Palahniuk"}, :order => "published_at DESC", :limit => 10 ) # Rails 3 Book.where(:author => "Chuck Palahniuk") .order("published_at DESC").limit(10) Thursday, July 22, 2010
    • Inherently Chainable Thursday, July 22, 2010
    • # Rails 3 def index @books = Book.where(:author => params[:author]) if params[:author] @books = @books.order(:title) if params[:sort] == 'title' respond_with @books end Thursday, July 22, 2010
    • # Rails 2.3 class Book named_scope :written_by {|a| {:conditions => {:author => a}}} named_scope :after {|d| {:conditions => ["published_on > ?", d]}} # Rails 3 class Book class << self def written_by(name) where(:author => name) end def after(date) where(["published_on > ?", date]) end end end Thursday, July 22, 2010
    • Be er H ks OSCON 2010 Thursday, July 22, 2010
    • Generators OSCON 2010 Thursday, July 22, 2010
    • config.generators do |g| g.orm :mongomapper g.test_framework :rspec g.integration_tool :rspec end rails g model my_model Thursday, July 22, 2010
    • Engines OSCON 2010 Thursday, July 22, 2010
    • #lib/your_plugin/engine.rb require "your_plugin" require "rails" module YourPlugin class Engine < Rails::Engine engine_name :your_plugin end end Thursday, July 22, 2010
    • Lots more... railsdispatch.com edgeguides.rubyonrails.org OSCON 2010 Thursday, July 22, 2010
    • But we’re already on Rails 2.3! OSCON 2010 Thursday, July 22, 2010
    • How do we cope? OSCON 2010 Thursday, July 22, 2010
    • Ignore it all and cheat. github.com/rails/ rails_upgrade OSCON 2010 Thursday, July 22, 2010
    • Finds Key Blockers: Routes, Bundler, application.rb OSCON 2010 Thursday, July 22, 2010
    • 3 Step Process OSCON 2010 Thursday, July 22, 2010
    • Analyze Your App rake rails:upgrade:check OSCON 2010 Thursday, July 22, 2010
    • Backup 2.3 Files rake rails:upgrade:backup OSCON 2010 Thursday, July 22, 2010
    • Run Upgrades rake rails:upgrade:routes rake rails:upgrade:gems rake rails:upgrade:configuration OSCON 2010 Thursday, July 22, 2010
    • Takeaways OSCON 2010 Thursday, July 22, 2010
    • Tests help. Unfortunately, they may not run. Thursday, July 22, 2010
    • Don’t be afraid to re-generate. Thursday, July 22, 2010
    • Just take it one problem at a time. Thursday, July 22, 2010
    • estions? @mbleigh @intridea github.com/mbleigh/upgrade-to-rails3 OSCON 2010 Thursday, July 22, 2010