Upgrade to Pro — share decks privately, control downloads, hide ads and more …

What's new in Rails 4.1 - Paul Grayson

Las Vegas Ruby Group
April 23, 2014
50

What's new in Rails 4.1 - Paul Grayson

Las Vegas Ruby Group

April 23, 2014
Tweet

Transcript

  1. What's new in Rails 4.1 • 5210 commits (1469 pull

    requests) • 601 authors • Work done 2012-12-09 to 2014-04-08 • v4.0.0.rc1 released 2013-04-29 • v4.0.0 released 2013-06-25 • v4.1.0 released 2014-04-08 git log v4.1.0 --not v4.0.0
  2. Spring application preloader used by default • Keeps a server

    running constantly • Hopefully auto-loads your files
  3. config/secrets.yml • Standard place to keep secrets so they won't

    be checked into git • Not added to .gitignore in 4.1.0 (!) • No support for deploying this file • You probably still need to use ENV
  4. Action Pack Variants • Custom pages intended for different devices

    • Examples are all about USER_AGENT • Not much documentation, but it's simple • Please don't use this!
  5. Action Mailer Previews • Looking at your mailers in a

    browser • Formerly the MailView gem from 37signals http://localhost:3000/rails/mailers
  6. Active Record enums • NOT native database enums • Stored

    as integers class Conversation < ActiveRecord::Base enum status: [ :active, :archived ] end conversation.active? converstaion.active! Converstaion.active.each { ... }
  7. Message Verifiers • Was previously used only for cookies •

    Now available for unsubscribe links, etc. • Vulnerable to replay attacks, so use sparingly
  8. Module#concerning • Formerly the concerning gem by 37signals • Good

    for cleaning up “junk-drawer classes” class Todo concerning :EventTracking do included do has_many :events end class_methods do def next_by_event # ... end end end end
  9. CSRF protection for .js requests • Protects against some obscure

    attacks • You will need to provide tokens for AJAX
  10. Load structure.sql instead of db:test:prepare • This file should be

    in source control • Ensures that everyone is testing the same DB