Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Active record makeover

1,291 views

Published on

15 minute talk given at Red Dirt Ruby Conf in Oklahoma City - May 6th

Published in: Technology
  • Be the first to comment

Active record makeover

  1. 1. Active Record Makeover Marty Haught @mghaught http://martyhaught.com
  2. 2. Boulder Ruby Longmont, Colorado
  3. 3. ActiveRecord feels like
  4. 4. Growing tired of this
  5. 5. Wished I was driving...
  6. 6. ...but I can’t • Existing system • Project already committed
  7. 7. or doesn’t make sense • Not the best fit for project • No significant gain • rdbms solves the problem
  8. 8. So where’s the love? • Where’s the new hotness • Envious of the nosql gems • Want a better way to model data
  9. 9. Rails 3’s ActiveRecord Unpimp your auto
  10. 10. Engine’s been rebuilt • ActiveRelation • arel gem - relational algebra • Consistency under the hood
  11. 11. Easier to model with • Simpler api • Fully chainable • Lazy loaded
  12. 12. find all Rails 2x Rails 3
  13. 13. first, last, count Rails 2x Rails 3
  14. 14. Finder methods
  15. 15. Chainable Rails 2x Rails 3
  16. 16. What about scopes? Rails 2x Rails 3
  17. 17. Reusing scopes
  18. 18. Merging scopes
  19. 19. Using scoped
  20. 20. Mix and match
  21. 21. Behaves like the model new create delete create! delete_all find update destroy update_all destroy_all exists?
  22. 22. Building with where values
  23. 23. Lazy loaded • won’t interact with the db until accessed • such as each, map, etc. • force load - all, first, last
  24. 24. Plays nice with caching
  25. 25. Modeling with class
  26. 26. to_sql
  27. 27. where_values
  28. 28. Extend the possibilities • ActiveRecord::QueryMethods opens a door • invokes to_sql on where_values unless a String • pass in your own objects that create sql
  29. 29. MetaSearch & MetaWhere Ernie Miller http://github.com/ernie/meta_where http://github.com/ernie/meta_search
  30. 30. Got some hotness • new engine • concise and readable • simpler to model • flexible • extendable
  31. 31. Go have fun, get dirty
  32. 32. Thank you Marty Haught @mghaught mghaught@gmail.com http://martyhaught.com Image Credits wagon - http://www.flickr.com/photos/halfy/3410561333 vw car - http://www.youtube.com/watch?v=qgEvy60bZYI white race car - http://www.flickr.com/photos/33031095@N03/4538638400/ yellow sports car - http://www.flickr.com/photos/retinafunk/57699167/ red sports car - http://www.flickr.com/photos/freefoto/3844246045/ gray sports car - http://www.flickr.com/photos/doramosnoopy/2479741916/ blue sports car - http://www.flickr.com/photos/chorwedel/4398697300/ racing cars - http://www.flickr.com/photos/oizumi/2582189751/

×