We’ve released Ruby on Rails 2.3.6: six months of bug fixes, a handful of new features, and a strong bridge to Rails 3.
We deprecated some obscure and ancient features in Rails 2.3.6 so we could cut them entirely from Rails 3. If your app runs on Rails 2.3.6 without deprecation warnings, you’re in good shape for a smooth sail onward.
This slow-cooked dish is brought to you some 87 committers from our all-volunteer kitchen.
Now, let’s open the goodie bag!
Action Pack
- Upgrade Rack from 1.0.1 to 1.1.0.
- XSS prevention: update to match Rails 3 and move to the official plugin at http://github.com/rails/rails_xss.
- Cookies: convenient cookie jar add-ons to set permanent or signed cookies, or both at once:
cookies.permanent.signed[:remember_me] = current_user.id
. Read more. - Flash: promote
alert
andnotice
, the most common flash keys in many apps, toself.alert = '...'
andself.notice = '...'
. Addredirect_to url, :alert => '...'
and:notice => '...'
. Read more. - i18n: localize the
label
helper.
Active Record
- Namespacing: support optional table name prefixes on modules by defining
self.table_name_prefix
. Read more. - Destroy uses optimistic locking.
- Counter cache: use
Post.reset_counters(1234, :comments)
to count the number of comments for post 1234 and reset its comments_count cache. - PostgreSQL: always use standard-conforming strings, if supported.
- MySQL: add index length support. Read more.
- MySQL:
add_
andchange_column
support column positioning using:first => true
and:after => :other_column
.
Active Support
- Upgrade i18n from 1.3.3 to 1.3.7.
- Upgrade TZInfo from 0.3.12 to 0.3.16.
- Multibyte: speed up string verification and cleaning.
- JSON: use YAJL for JSON decoding, if available.
gem install yajl-ruby
- Testing: add
assert_blank
andassert_present
. Read more. - Core: backport
Object#singleton_class
from Ruby 1.8.8, deprecating ourObject#metaclass
. - Core: add
Object#presence
that returns the object if it’s#present?
otherwise returnsnil
. Example:region = params[:state].presence || params[:country].presence || 'US'
- Core: add
Enumerable#exclude?
to matchinclude?
. - Core: rename
Array#rand
toArray#random_element
to avoid collision withKernel#rand
. - Core: rename
Date#
andTime#last_(month|year)
to#prev_(month|year)
for Ruby 1.9 forward compatibility.
Active Resource
- JSON: set
ActiveResource::Base.include_root_in_json = true
to serialize as a hash of model name -> attributes instead of a bare attributes hash. Defaults to false.
Action Mailer
- Upgrade TMail from 1.2.3 to 1.2.7.
Railties
- Silence RubyGems 1.3.6 deprecation warnings.
No comments:
Post a Comment