Rails 4.0

Overview of changes in the upcoming Rails version

Get Started. It's Free
or sign up with your email address
Rocket clouds
Rails 4.0 by Mind Map: Rails 4.0

1. Overview

1.1. BostonRB: what to expect in Rails 4.0

1.2. Ruby on Rails Guides: Rails 4.0

1.3. Rails 4.0 Whirlwind tour

1.4. Rails 4 in 30`

1.5. Why should I care about Rails 4 (video)

1.6. Rails 4 countdown to 2013

1.7. Rails 4: What's new (JangoSteve)

1.8. Get your app ready for Rails 4

1.9. [ Railscasts ] What's new in Rails 4

1.10. [ SD Ruby] What's new in Rails 4

1.11. [ EngineYard ] Rails 4, Part 2

1.12. [ EngineYard ] Rails 4, Part 1

2. ActiveRecord

2.1. MySQL strict mode by default

2.2. PostgreSQL

2.2.1. Array

2.2.1.1. Rails pull request: add support for array datatype

2.2.1.2. Rails 4.0 sneak peek: PostgreSQL array support

2.2.2. A love affair with PostgreSQL [ Rails 4 countdown ]

2.2.3. MACADDR, INET, CIDR datatypes

2.2.4. int4range and int8range datatypes

2.2.5. Railscasts (pro): Hstore

2.2.6. Support for ranges (int4range, int8range, numrange, tsrange, tstzrange, daterange)

2.2.7. Concurrent indexing

2.2.7.1. Pull request

2.2.7.2. Concurrent Indexes for PostgreSQL for Rails 4 and Postgres_ext

2.3. Support for specifying transaction isolation level

2.4. Schema cache dump

2.4.1. Rails pull request: schema cache dump

2.4.2. Schema Cache Dump [ Rails 4 countdown ]

2.5. Relation#Pluck

2.5.1. Rails pull request: pluck accepts multiple arguments

2.5.2. Accepts SQL fragments

2.6. ActiveRecord::Relation

2.7. Associations in Rails 4

2.8. 'where.not' query method

2.8.1. original commit with 'where.like'

2.8.2. rollback of 'where.like'

2.8.3. Not Equal support for Active Record queries [ Rails 4 countdown ]

2.9. Add metadata (fingerprint, name) to schema_migrations

2.10. Bang versions of relation query methods

2.10.1. Commit

2.10.2. For internal use only

2.11. ActiveRecord::Base.all returns a Relation instead of an Array.

2.12. Add 'find_or_create_by', 'find_or_create_by!' and 'find_or_initialize_by' methods to Relation

2.13. Add CollectionProxy#scope

2.14. Add support for partial inserts

2.15. rename update_attributes to update

2.16. What's new in Active Record [ Rails 4 countdown ]

2.17. Method '.unscope'

2.18. Scope conditions are combined using AND

2.19. Transactions can be turned off per migration

2.20. 'on' and 'off' are type casted into boolean

2.21. new migration helper 'create_join_table' for HABTM join tables

2.22. added 'Relation#find' and 'Relation#find_by!'

2.23. custom index type support

3. Upgrade

3.1. New deprecation policy

3.2. Turned into plugins

3.2.1. Hash-based finders

3.2.2. Dynamic finder methods

3.2.2.1. gem active_record_deprecated_finders

3.2.3. ActiveRecord::SessionStore

3.2.3.1. gem activerecord-session_store

3.2.3.2. ActiveRecord::SessionStore Gem extraction [ Rails 4 countdown ]

3.2.4. ActiveResource

3.2.5. ActionPack: PageCaching

3.2.5.1. gem actionpack-page_caching

3.2.5.2. Page and Action Caching Gem Extraction [Rails 4 countdown]

3.2.6. ActionPack: ActionCaching

3.2.6.1. gem actionpack-action_caching

3.2.7. Asset pipeline

3.2.7.1. gem sprockets-rails

3.2.7.2. Sprockets Rails [ Rails 4 countdown ]

3.2.8. rails observers

3.2.8.1. gem "rails-observers"

3.2.8.2. Observers Gem Extraction [ Rails 4 countdown ]

3.2.9. email address obfuscation

3.2.9.1. gem actionview-encoded_mail_to

3.2.10. ActionDispatch XML parameters parser

3.2.10.1. gem 'actionpack-xml_parser'

3.3. Deprecations

3.3.1. AR::Base.scoped removed

3.3.2. config.whiny_nils

3.3.3. Eager evaluated scope

3.3.3.1. Ar.scope requires lambda

3.3.4. vendor/plugins (Rails::Plugin) removed

3.3.5. email address obfuscation removed from mail_to helper

3.3.6. ActiveRecord auto explain removed

3.3.7. Removed BestStandardsSupport middleware

3.3.8. has_many/has_one, :dependent => :restrict

3.3.8.1. instead use

3.3.8.1.1. :dependent => :restrict_with_exception

3.3.8.1.2. :dependent => :restrict_with_error

3.3.9. option ':distinct' for 'Relation#count' us deprecated

3.3.9.1. instead use

3.3.9.1.1. 'Relation#distinct'

3.3.10. update_attribute is removed

3.3.10.1. instead use

3.3.10.1.1. update_columns

3.3.11. helpers 'button_to_function' and 'link_to_function' were removed

3.3.12. removed ActiveRecord::Base#default_scopes?

3.3.13. removed 'fast_xs' support

3.3.13.1. instead use

3.3.13.1.1. 'String#encode(xml: :attr)`

3.3.14. command 'rails test' has been removed

3.3.14.1. instead use

3.3.14.1.1. rake test

3.3.15. removed public/rails.png

3.4. Deprecations (Rails 4 only)

3.4.1. manual upgrade of a cookie store

3.4.1.1. removed

3.4.1.1.1. config.encrypted_cookie_store

3.4.1.1.2. config.upgrade_signature_to_encryption_cookie_store

3.5. Updated test names and locations

3.6. memcache-client replaced with dalli

3.6.1. Dalli replaces memcache-client [ Rails 4 countdown ]

4. Inspiration

5. ActionPack

5.1. Routing concerns

5.1.1. gem routing_concerns

5.1.2. commit

5.1.3. Routing Concerns [ Rails 4 countdown ]

5.2. ActionController::LIve

5.2.1. Tenderlove: IS IT LIVE?

5.2.2. Live Streaming [ Rails 4 countdown ]

5.2.3. Rails 4 Server-Side Events with ActionController::Live and PostgreSQL NOTIFY/LISTEN

5.3. Strong parameters

5.3.1. RailsGuides: Ruby on Rails 4.0

5.3.2. Blog Ruby on Rails: Strong parameters

5.3.3. Upgrading to Rails 4: Parameters security tour

5.3.4. Pull request

5.3.5. Railscasts (pro)

5.3.6. gem strong_parameters

5.3.7. Strong parameters [ Rails 4 countdown ]

5.3.8. Rails 4 Quick Look: Strong parameters

5.3.9. Strong parameters in Rails 4

5.4. Turbolinks

5.4.1. gem turbolinks

5.4.2. Introducing Turbolinks for Rails 4.0 geekmonkey

5.4.3. Turbolinks benchmarks from Steve Klabnik

5.4.4. Railscasts (free)

5.4.5. Turbolinks [ Rails 4 countdown ]

5.5. Caching

5.5.1. Russian doll caching

5.5.1.1. How key-based cache expiration works

5.5.1.2. Evening on Backbone.js/ Q&A with dhh

5.5.1.3. Russian Doll Caching and Cache Digests [ Rails 4 countdown [

5.5.2. Declarative ETags

5.5.2.1. Generate Controller-Wide ETags [ Rails 4 countdown ]

5.5.2.2. gem etagger

5.5.2.3. commit

5.5.3. Rake::Cache disabled by default

5.5.4. Cache digests

5.5.4.1. Commit

5.5.4.2. gem cache_digests

5.5.4.3. Railscasts (free)

5.6. Rename all action callbacks from *_filer to *_action

5.6.1. Renaming *_filter to *_action [ Rails 4 countdown ]

5.7. Decouple ActionPack and ActionView

5.8. HTML5 tag helpers

5.8.1. New HTML5 Form Input Helpers [ Rails 4 countdown ]

5.9. Support for custom flash types

5.9.1. commit

5.9.2. Register your own flash types [ Rails 4 countdown ]

5.10. Collection Form Helpers [ Rails 4 countdown ]

5.11. content_for with flush parameter

6. General

6.1. Threadsafe on by default

6.1.1. Railscasts (pro)

6.1.2. pull request

6.1.3. Rails 4 is thread safe by default [ Rails 4 countdown ]

6.2. PATCH verb instead of PUT

6.2.1. Edge rails: PATCH

6.2.2. Rails issue: use PATCH verb instead of PUT

6.2.3. HTTP PATCH Verb [ Rails 4 countdown ]

6.3. Asynchronous ActionMailer (postponed)

6.3.1. Rails 4.0 Sneak peek: Async ActionMailer

6.3.2. Rails pull request: Async actionmailer

6.3.3. Asynchronous Action Mailer [ Rails 4 countdown ]

6.4. Queue API (postponed)

6.4.1. Rails commit: queue implementation

6.4.2. Rails.queue [ Rails 4 countdown ]

6.5. ActiveModel::Model (removed)

6.5.1. Plataforma: barebone models to use with actionpack in rails 4.0

6.5.2. rails commit: add activemodel::model

6.5.3. rails commit: remove activemodel::model

6.5.4. ActiveModel::Model [ Rails 4 countdown ]

6.6. public/index.html is replaced by internal welcome_controller

6.6.1. Dynamic index.html [ Rails 4 countdown ]

6.7. add app/models/concerns and app/controllers/concerns to the load path

6.7.1. instructions

6.8. introduce folder ./bin for app's executables

6.9. introduce assert_not

6.10. Absence validation

6.10.1. ActiveModel Absence Validator [ Rails 4 countdown ]

6.10.2. Pull request

6.11. config eager loading

6.11.1. config.eager_load

6.11.2. config.eager_load_namespaces

6.12. AS. Object#try can call only public methods

7. Security

7.1. Default headers

7.1.1. RoR Guides: Rails 4.0 security

7.2. set escaping HTML in json encoding to true by default

7.3. Encrypted cookie store

7.3.1. Pull request