Slide 1

Slide 1 text

Rails 4: Appetizers @jwo for @houstonrb Wednesday, July 10, 13

Slide 2

Slide 2 text

Rubies Ruby 1.9.3 at least, prefer 2.0 Rails 2.3 => End of Life Ruby 1.8.7 => End of Life Wednesday, July 10, 13

Slide 3

Slide 3 text

Bootup time faster on Ruby 2.0 with Rails 4 How fast? Cray Cray Faster Wednesday, July 10, 13

Slide 4

Slide 4 text

Cache Digests Caches the view (partials) by the updated_at column Wednesday, July 10, 13

Slide 5

Slide 5 text

Best if you have a upper-most site object. Example: Basecamp has an upper-most Account object. Cache Digests Wednesday, July 10, 13

Slide 6

Slide 6 text

So: Add a Site object that has upper-most updated at. Cache Digests Wednesday, July 10, 13

Slide 7

Slide 7 text

Will help with sidebar that does not directly belong to a Post. Cache Digests Wednesday, July 10, 13

Slide 8

Slide 8 text

Uses JavaScript to pull only the tag Turbolinks Wednesday, July 10, 13

Slide 9

Slide 9 text

Speeds up document based sites Turbolinks Wednesday, July 10, 13

Slide 10

Slide 10 text

Most everybody should add jquery-turbolinks Turbolinks Wednesday, July 10, 13

Slide 11

Slide 11 text

Watch out for: Turbolinks Wednesday, July 10, 13

Slide 12

Slide 12 text

External javascript (stripe) Data tags on the body object things in the `` like `` tags Tubolinks Wednesday, July 10, 13

Slide 13

Slide 13 text

Most everything, ever Wednesday, July 10, 13

Slide 14

Slide 14 text

Moves Mass Assignment protection to the controllers Strong Parameters Wednesday, July 10, 13

Slide 15

Slide 15 text

you have to manually remove attr_accessible if upgrading Strong Parameters Wednesday, July 10, 13

Slide 16

Slide 16 text

PostgreSQL Additions hstore: JSON store, attributes, better Single Table Inheritance Wednesday, July 10, 13

Slide 17

Slide 17 text

PostgreSQL Additions Arrays: tagging, parent child ancestry Wednesday, July 10, 13

Slide 18

Slide 18 text

Arel Changes find_by_customer_id => lives! find(:all, conditions: ["customer_id = ?", 45]) => DEAD find(customer_id: 45) => new Wednesday, July 10, 13

Slide 19

Slide 19 text

Arel Changes find_or_create_by_customer_id() => dead find_or_create_by(customer_id: 45) => new! Wednesday, July 10, 13

Slide 20

Slide 20 text

Arel Changes where(id: 45).first_or_create => new hotness .all => deprecated Wednesday, July 10, 13

Slide 21

Slide 21 text

Scope Changes scope :future, where("created_at > ?", Time.now) => syntax error Wednesday, July 10, 13

Slide 22

Slide 22 text

Scope Changes scope :future, → { where("created_at > ?", Time.now) } Wednesday, July 10, 13

Slide 23

Slide 23 text

MultiThreaded It's on, baby! Wednesday, July 10, 13

Slide 24

Slide 24 text

Moved to Gems Observers ActiveRecord SessionStore ActiveResource LOL Action & Page Caching Wednesday, July 10, 13

Slide 25

Slide 25 text

Test Directories test/unit => test/models test/functional => test/ controllers Wednesday, July 10, 13

Slide 26

Slide 26 text

Misc Gemfile has no Assets section Concerns directory is prevalent Wednesday, July 10, 13

Slide 27

Slide 27 text

Misc /bin shows up (binstubs) Plugins must be moved to lib Wednesday, July 10, 13

Slide 28

Slide 28 text

Misc ActionController::Live => (not alot of attention) Patch verb in REST Wednesday, July 10, 13

Slide 29

Slide 29 text

Misc before_filters are now before_action Wednesday, July 10, 13

Slide 30

Slide 30 text

Didn't Make it Queue API Async Mailers Wednesday, July 10, 13

Slide 31

Slide 31 text

get more information http:/ /blog.wyeworks.com/ Rails Conf 2013 Postgres, the Best Tool You're Already Using Wednesday, July 10, 13

Slide 32

Slide 32 text

get more information http:/ /rails-upgrade- checklist.com http:/ /upgradingtorails4.com http:/ /upgradingrails.com Wednesday, July 10, 13

Slide 33

Slide 33 text

Thanks! I’m @jwo Wednesday, July 10, 13