Rails 2.0 Presentation
-
Upload
scott-chacon -
Category
Business
-
view
9.261 -
download
0
description
Transcript of Rails 2.0 Presentation
![Page 1: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/1.jpg)
Rails 2.0“evolution, not revolution”
![Page 2: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/2.jpg)
Rails 2.0 OverviewRESTful web architectures
some small feature maturations
removal of features determined to be not essential
![Page 3: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/3.jpg)
Action Pack
ActionController + ActionView
![Page 4: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/4.jpg)
Multiview
show.html.erbindex.atom.builderedit.iphone.haml
“Machine-Gunning .rhtml and .rxml”
(action.mimetype.renderer)
![Page 5: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/5.jpg)
Partial Layouts
![Page 6: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/6.jpg)
Partial Layouts
![Page 7: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/7.jpg)
Routing Resources
![Page 8: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/8.jpg)
link_to ‘variants’, admin_product_variants_url(@product)
/admin/products/:product_id/variants
Routing Namespaces
![Page 9: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/9.jpg)
Record Identification
redirect_to(person)link_to(person.name, person)
form_for(person)
![Page 10: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/10.jpg)
HTTP Authentication
![Page 11: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/11.jpg)
authenticate_or_request_with_http_basic
![Page 12: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/12.jpg)
Exception Handling
![Page 13: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/13.jpg)
rescue_from
controllers/application.rb
![Page 14: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/14.jpg)
Atom Feed Helper
![Page 15: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/15.jpg)
Stolen from the DHH announcement
![Page 16: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/16.jpg)
Mime::Type Predicates
controller.request.format.html?controller.request.format.xml?
![Page 17: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/17.jpg)
PerformanceAsset ServersAsset Caching
Cookie Based Sessions
![Page 18: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/18.jpg)
Asset Servers
most browsers will only make up to two simultaneous connections
to any one domain
![Page 19: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/19.jpg)
Asset Servers
config/environment.rb
![Page 20: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/20.jpg)
Asset Servers
config/environment.rb
will always use the same server for a single file
![Page 21: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/21.jpg)
Asset Caching
![Page 22: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/22.jpg)
Cookie Based Sessions
![Page 23: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/23.jpg)
Cookie Sessions Security
example stolen from ryan daigle
![Page 24: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/24.jpg)
Security
CSRF Protection
TextHelper#sanitize
HTTP only cookies
![Page 25: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/25.jpg)
CSRF Protection
![Page 26: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/26.jpg)
Active Resource
Short Overview of Resources
![Page 27: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/27.jpg)
Active Resource
A consumer of RESTful resources
![Page 28: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/28.jpg)
Active Resource
A consumer of RESTful resourcesAs ActiveRecord is a consumer of
relational database resources
![Page 29: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/29.jpg)
ActiveResource Models
![Page 30: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/30.jpg)
Active Resource ActionsModel request Http REST
operation request
body Request URI Response
find(id) GET n/a /people/id.xml <XML>
save (update) PUT <XML> /people/id.xmlStatus:
200 OK
save (create) POST <XML> /people Location:http://x/people/id.xml
destroy DELETE n/a /people/id.xmlStatus:
200 OK
list GET n/a /people <XML>
credit: ryan diagle
![Page 31: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/31.jpg)
demo
![Page 32: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/32.jpg)
Active Record
![Page 33: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/33.jpg)
Validations
![Page 34: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/34.jpg)
:allow_blankvalidates_numericality
![Page 35: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/35.jpg)
:allow_blankvalidates_numericality
![Page 36: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/36.jpg)
Sexy Migrations
![Page 37: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/37.jpg)
“Cold Shower” Migrations
![Page 38: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/38.jpg)
Err Sexy Migrations
![Page 39: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/39.jpg)
Rails 2.0 Sexy4 fewer lines + rails programmers == sexy
![Page 40: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/40.jpg)
References
![Page 41: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/41.jpg)
Query Cache
![Page 42: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/42.jpg)
Query Cache Logging
![Page 43: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/43.jpg)
Disabling the Query Cache
![Page 44: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/44.jpg)
FixturesFoxy Fixtures
Collection FixturesFixture Performance
![Page 45: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/45.jpg)
Foxy Fixtures
conferences.yml
places.yml
![Page 46: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/46.jpg)
Foxy Fixtures
conferences.yml
places.yml
![Page 47: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/47.jpg)
Collection Fixtures
Now
Was
![Page 48: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/48.jpg)
Data Exchange
to_xml, from_xmlto_json, from_json
![Page 49: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/49.jpg)
to_json /conferences/show/1.js
![Page 50: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/50.jpg)
to_xml
![Page 51: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/51.jpg)
Other Stuff
![Page 52: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/52.jpg)
![Page 53: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/53.jpg)
rake
![Page 54: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/54.jpg)
rake notes
![Page 55: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/55.jpg)
rake notes
![Page 56: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/56.jpg)
rake notes
![Page 57: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/57.jpg)
rake db
rake db:createrake db:create:all
rake db:droprake db:drop:allrake db:reset
rake db:rollbackrake db:version
![Page 58: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/58.jpg)
rake routes
![Page 59: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/59.jpg)
![Page 60: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/60.jpg)
![Page 61: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/61.jpg)
rake routesroute name, HTTP method, route path, route requirements
![Page 62: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/62.jpg)
![Page 63: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/63.jpg)
![Page 64: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/64.jpg)
![Page 65: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/65.jpg)
![Page 66: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/66.jpg)
helper :all
![Page 67: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/67.jpg)
rails my_new_app
![Page 68: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/68.jpg)
Request Profiler
./script/performance/request -n 10 login_session.rb
RubyProf Wrapper
![Page 69: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/69.jpg)
/config/initializers/
![Page 70: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/70.jpg)
initializers directory
![Page 71: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/71.jpg)
initializers directory
![Page 72: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/72.jpg)
initializers directory
![Page 73: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/73.jpg)
config/preinitializer.rbloaded before the environment files
![Page 74: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/74.jpg)
Scaffolding
./script/generate scaffold conference name:string description:text start_date:date end_date:date
![Page 75: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/75.jpg)
Resourceful Scaffolding
![Page 76: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/76.jpg)
Breakpoints
![Page 77: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/77.jpg)
gem install ruby-debug
![Page 78: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/78.jpg)
add ‘debugger’ to code
![Page 79: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/79.jpg)
./script/server -u
![Page 80: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/80.jpg)
demo
![Page 81: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/81.jpg)
www.datanoise.com/ruby-debug
![Page 82: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/82.jpg)
Upgrading to 2.0
![Page 83: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/83.jpg)
Deprecations
![Page 84: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/84.jpg)
with_scope
![Page 85: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/85.jpg)
Components
![Page 86: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/86.jpg)
Pagination
![Page 87: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/87.jpg)
Object Transactions
![Page 88: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/88.jpg)
http://code.bitsweat.net/svn/object_transactions/
![Page 89: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/89.jpg)
ActionWebService
ActiveResource
![Page 90: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/90.jpg)
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
![Page 91: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/91.jpg)
start_form_tagend_form_tag
form_for doend
![Page 92: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/92.jpg)
start_form_tagend_form_tag
form_tag</form>
![Page 93: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/93.jpg)
Extracting to Plugins and Gems
acts_assome js helpers
commercial database adapters
![Page 94: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/94.jpg)
./script/plugin install
acts_as_listacts_as_nested_setacts_as_treeauto_completein_place_editing
![Page 95: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/95.jpg)
gem install activerecord-X-adapter
--source http://gems.rubyonrails.com
firebirdfrontbaseinformix
openbaseoracle
sqlserversybase
![Page 96: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/96.jpg)
Upgrade Process
gem install rails -y
![Page 97: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/97.jpg)
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
![Page 98: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/98.jpg)
Thanks!noesbueno.org/rails2
![Page 99: Rails 2.0 Presentation](https://reader034.fdocuments.in/reader034/viewer/2022052522/554f42b8b4c90572088b53f8/html5/thumbnails/99.jpg)
Work with me @
Sr. Web Developer
Linux Systems Administrator
Sr. Game/Interaction Programmer
Computer Vision Engineer
http://www.reactrix.com/[email protected]