- Ruby 1.9.3 and Whiny Nils.
- ThreadSafety enabled in production.
- Changes to
match
in routes. - Support for
patch
HTTP verb. - Route
concerns
- Deprecation of Hash-based finders, like
Post.find(:all)
- Deprecation of dynamic finders that return collection, like
Post.find_all_by_title('Rails 4')
. - Deprecation of dynamic finders that build or create objects, like
Post.find_or_initialize_by_author('admin')
andPost.find_or_create_by_author('admin')
. - New
find_or_initialize_by
,find_or_create_by
andfind_by
. - New
AR#update
,AR#update_column
andAR#update_columns
methods. - ActiveRecord scopes must now take a callable object.
- Deprecation of
Model.scoped
in favor ofModel.all
, which now returns a chainable object. - New
Relation#load
,Relation#none
andRelation#not
. - Changes to
Relation#order
. - New
references
method used when matching on attributes from eager loaded associations, likePost.includes(:comments).where("comments.name = 'foo'").references(:comments)
, and scenarios wherereferences
is not needed. - New
ActiveMode::Model
module.
- New Strong Parameters feature.
- Authenticity token in remote forms now injected via JavaScript.
- Custom handling for
request_from_forgery
. - New suffix for controller callbacks, like
before_action :authenticate_user
. - Custom Flash Types.
- Encrypted Cookies.
- collection_check_boxes.
- collection_radio_buttons.
- date_select.
- date_field.
- Ruby template handler, example with returning JSON.
- New test folder structure.
- New rake tasks for running tests.
- Changes to performance testing.
- Switch from TestUnit to MiniTest.
- Moved from
memcache-client
todalli
. - Controller wide etags.
- New cache digests feature.
- ActionController::Live
- Turbolinks