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.