intertwingly

It’s just data

Rails 2.3.0 RC1


The rapid rate of change in Rails presents a considerable challenge to book authors that wish to include instructions on how to build a running application.  Rails 2.3RC1 is no different.  Released just two months and ten days after Rails 2.2, it includes quite a number of changes, for example:

Instead of uncommenting the following line in config/environment.rb:

config.action_controller.session_store = :active_record_store

One uncomments the following line in config/initializers/session_store.rb:

ActionController::Base.session_store = :active_record_store

The file app/controllers/application.rb has been renamed to app/controllers/application_controller.rb.  Additionally, within that file, there no longer is a :secret hash to uncomment in the call to protect_from_forgery as it is no longer needed.

The following files are no longer present:

script/performance/request
script/process/spawner
script/process/inspector
script/process/reaper
public/dispatch.cgi
public/dispatch.rb
public/dispatch.fcgi

The following new files are included in new Rails applications:

test/unit/helpers
config/initializers/session_store.rb
config/initializers/backtrace_silencers.rb

Additionally, as a release candidate, it is not surprising that there are bugs in the release.  Apparently, storing non-ActiveRecord objects in a session is one such area: ticket, test-case.  Hiding behind that bug appears to be another that I have not yet isolated into a minimal test case.  The symptoms are the following error:

/!\ FAILSAFE /!\  Tue Feb 03 21:02:03 -0500 2009
  Status: 500 Internal Server Error
  You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.include?
    /home/rubys/.gem/ruby/1.8/gems/activerecord-2.3.0/lib/active_record/attribute_methods.rb:142:in `create_time_zone_conversion_attribute?'

Oh, and the release also contains a few new features.