Slideshow transcript
Slide 1: Rails 2.0 “evolution, not revolution”
Slide 2: Rails 2.0 Overview RESTful web architectures some small feature maturations removal of features determined to be not essential
Slide 3: Action Pack ActionController + ActionView
Slide 4: Multiview “Machine-Gunning .rhtml and .rxml” (action.mimetype.renderer) show.html.erb index.atom.builder edit.iphone.haml
Slide 5: Partial Layouts
Slide 6: Partial Layouts
Slide 7: Routing Resources
Slide 8: Routing Namespaces link_to ‘variants’, admin_product_variants_url(@product) /admin/products/:product_id/variants
Slide 9: Record Identification redirect_to(person) link_to(person.name, person) form_for(person)
Slide 10: HTTP Authentication
Slide 11: authenticate_or_request_with_http_basic
Slide 12: Exception Handling
Slide 13: controllers/application.rb rescue_from
Slide 14: Atom Feed Helper
Slide 15: Stolen from the DHH announcement
Slide 16: Mime::Type Predicates controller.request.format.html? controller.request.format.xml?
Slide 17: Performance Asset Servers Asset Caching Cookie Based Sessions
Slide 18: most browsers will only make up to two simultaneous connections to any one domain Asset Servers
Slide 19: config/environment.rb Asset Servers
Slide 20: config/environment.rb Asset Servers will always use the same server for a single file
Slide 21: Asset Caching
Slide 22: Cookie Based Sessions
Slide 23: example stolen from ryan daigle Cookie Sessions Security
Slide 24: Security CSRF Protection TextHelper#sanitize HTTP only cookies
Slide 25: CSRF Protection
Slide 26: Active Resource Short Overview of Resources
Slide 27: A consumer of RESTful resources Active Resource
Slide 28: A consumer of RESTful resources As ActiveRecord is a consumer of relational database resources Active Resource
Slide 29: ActiveResource Models
Slide 30: Active Resource Actions Http REST request Model request Request URI Response operation body find(id) GET n/a /people/id.xml <XML> Status: save (update) PUT <XML> /people/id.xml 200 OK Location: save (create) POST <XML> /people http://x/people/id.xml Status: destroy DELETE n/a /people/id.xml 200 OK list GET n/a /people <XML> credit: ryan diagle
Slide 31: demo
Slide 32: Active Record
Slide 33: Validations
Slide 34: :allow_blank validates_numericality
Slide 35: :allow_blank validates_numericality
Slide 36: Sexy Migrations
Slide 37: “Cold Shower” Migrations
Slide 38: Err Sexy Migrations
Slide 39: Rails 2.0 Sexy 4 fewer lines + rails programmers == sexy
Slide 40: References
Slide 41: Query Cache
Slide 42: Query Cache Logging
Slide 43: Disabling the Query Cache
Slide 44: Fixtures Foxy Fixtures Collection Fixtures Fixture Performance
Slide 45: conferences.yml places.yml Foxy Fixtures
Slide 46: conferences.yml places.yml Foxy Fixtures
Slide 47: Was Now Collection Fixtures
Slide 48: Data Exchange to_xml, from_xml to_json, from_json
Slide 49: /conferences/show/1.js to_json
Slide 50: to_xml
Slide 51: Other Stuff
Slide 53: rake
Slide 54: rake notes
Slide 55: rake notes
Slide 56: rake notes
Slide 57: rake db rake db:create rake db:create:all rake db:drop rake db:drop:all rake db:reset rake db:rollback rake db:version
Slide 58: rake routes
Slide 61: rake routes route name, HTTP method, route path, route requirements
Slide 66: helper :all
Slide 67: rails my_new_app
Slide 68: Request Profiler RubyProf Wrapper ./script/performance/request -n 10 login_session.rb
Slide 69: /config/initializers/
Slide 70: initializers directory
Slide 71: initializers directory
Slide 72: initializers directory
Slide 73: config/preinitializer.rb loaded before the environment files
Slide 74: Scaffolding ./script/generate scaffold conference name:string description:text start_date:date end_date:date
Slide 75: Resourceful Scaffolding
Slide 76: Breakpoints
Slide 77: gem install ruby-debug
Slide 78: add ‘debugger’ to code
Slide 79: ./script/server -u
Slide 80: demo
Slide 81: www.datanoise.com/ruby-debug
Slide 82: Upgrading to 2.0
Slide 83: Deprecations
Slide 84: with_scope
Slide 85: Components
Slide 86: Pagination
Slide 87: Object Transactions
Slide 88: http://code.bitsweat.net/svn/object_transactions/
Slide 89: ActionWebService ActiveResource
Slide 90: syntax changes @params params[] @session session[] @flash flash[] @request request[] @env env[] find_all find(:all) find_first find(:first) render_partial render :partial :post => true :method => :post
Slide 91: start_form_tag end_form_tag form_for do end
Slide 92: start_form_tag end_form_tag form_tag </form>
Slide 93: Extracting to Plugins and Gems acts_as some js helpers commercial database adapters
Slide 94: ./script/plugin install acts_as_list acts_as_nested_set acts_as_tree auto_complete in_place_editing
Slide 95: gem install activerecord-X-adapter --source http://gems.rubyonrails.com firebird frontbase informix openbase oracle sqlserver sybase
Slide 96: Upgrade Process gem install rails -y
Slide 97: Resources • Peepcode Rails2 PDF - Ryan Daigle ($9) • http://weblog.rubyonrails.org • /2007/12/7/rails-2-0-it-s-done • http://ryandaigle.com • /articles/2007/12/7/rails-2-0-final-released-summary-of-features • http://www.slashdotdash.net • /articles/2007/12/03/rails-2-upgrade-notes
Slide 98: Thanks! noesbueno.org/rails2
Slide 99: Work with me @ http://www.reactrix.com/careers.php schacon@gmail.com Sr. Web Developer Linux Systems Administrator Sr. Game/Interaction Programmer Computer Vision Engineer




Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 10 (more)