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.