Ruby on Rails 2.3.6 Released
Posted by Jeremy Kemper May 23, 2010 @ 07:56 AM
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
alertandnotice, the most common flash keys in many apps, toself.alert = '...'andself.notice = '...'. Addredirect_to url, :alert => '...'and:notice => '...'. Read more. - i18n: localize the
labelhelper.
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_columnsupport column positioning using:first => trueand: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_blankandassert_present. Read more. - Core: backport
Object#singleton_classfrom Ruby 1.8.8, deprecating ourObject#metaclass. - Core: add
Object#presencethat 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#randtoArray#random_elementto 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 = trueto 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.
Peruse the commit log for the full story.

Great job. Looking forward to version 3.
Awesome.. Some cool updates! Thanks
Good work! Updating my dev app to try out some of the new features..
Thanks for all the hard work guys and I love the idea of easing the transition to rails 3.
yahoo!:)
Thanks to all for their work on this! Bring on 3.0!
Json stuff are much welcome.
Mama mia!
Allahu akbar! that’s another couple of lines off my controller
great!
new macbook pro and new rails at the same time for me ;-)
thanks.
Thanks for TMail upgrade :)
Great job guys!
How to disable the RailsXss Plugin?
Greay work on this, and thanks to all who contributed.
That said, this is piss-poor versioning. Way too many changes. Should be 2.4.0.
Prikittiiiw…. Great job guys! I’m Looking forward to rails 3.
Great stuff!
This site is extremely informative and has proved to be handy. Full of information and productive articles.
Regards, Bradley Holton.
Jeremy, why does rails bundle TZInfo, TMail and other libs available as gems?
PS: Congratulations with new release.
Yeah! Thanks everyone!
Thank you so much for all the work that went into this release.
I updated a 2.3.5 app to 2.3.5 by gem update rails and changed the version # in environment.rb to 2.3.6. Then I went into the console and did Model.all, and I get:
NoMethodError: undefined method `retrieve_connection’ for nil:NilClass from C:/Ruby/lib/ruby/gems/1.8/gems/activesupport-2.3.6/lib/active_support/whiny_nil.rb:52:in `method_missing’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retr ieve_connection’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `conn ection’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/base.rb:3154:in `quoted_table_name’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/base.rb:1714:in `construct_finder_sql’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/base.rb:1578:in `find_every’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/base.rb:618:in `find’ from C:/Ruby/lib/ruby/gems/1.8/gems/activerecord-2.3.6/lib/active_record/base.rb:638:in `all’ from (irb):1
What do you think this might be?
Thanks!
Does this release fix the issue where rails gem forget to install rack?
Thank you guys!
Great news!
Now, don’t take it personally, but the next time, please, avoid 20MB of cruft in test/tmp/ in actionpack.
Great job! I’ll try to update my rails projects soon
Any chance that you’ll repack the ActionPack 2.3.6 gems to not contain 500+ RackMultipart* temporary files in test/tmp? Makes bundling the gem into SVN rather annoying, as it’s clocking in at 17MB in size.
Ah, I see you’ve fixed it now with 2.3.7… nice one!
Excellent job and very much exited to see Rocking-rails3.0
Thanks for all your hard work.
I love that i18n now localizes the label helper. Saves a good bit of typing :)
Thanx :)