Ruby on Rails 2.3 Release Notes
http://guides.rubyonrails.org/2_3_release_notes.html
session
Rails 2.3 delivers a variety of new and improved features, including pervasive Rack integration, refreshed support for Rails Engines, nested transactions for Active Record, dynamic and default scopes, unified rendering, more efficient routing, application templates, and quiet backtraces. This list covers the major upgrades, but doesn’t include every little bug fix and change. If you want to see everything, check out the list of commits in the main Rails repository on GitHub or review the CHANGELOG files for the individual Rails components.Ryan's Scraps: What's New in Edge Rails: Nested Object Forms
We were all teased a few months ago about the possibility of finally solving the nested model/complex forms problem in Rails, but were then cruelly notified that it wasn’t quite ready for prime time. But our day has come – the most requested feature for Rails 2.3, the ability to handle multiple models in a single form, is here.
Scheduled for Rails 2.3Create a Rails Template and Build an App in Seconds
Create a Rails Template and Build an App in Seconds
instant rails
templates for rails applicationsRail Spikes: 10 Cool Things in Rails 2.3
Some very good advice from Thoughtbot on constructing Rails Engines. I've started using their [Clearance](http://github.com/thoughtbot/clearance/tree/master) engine for user authentication.
from GIANT ROBOTS SMASHING INTO OTHER GIANT ROBOTSsemantic art - ruby - Using default_scope to recreate acts_as_paranoid in ActiveRecord 2.3
def self.find_with_destroyed *args self.with_exclusive_scope { find(*args) } end
Rails 2.3 gives us “default_scope” which was described by Ryan Daigle as allowing you to “specify default ordering, and other scopes, in edge rails directly in your ActiveRecord model.” Ryan’s post gives some good examples of when you might want to use this (specifically on models where you always want them sorted in a specific manner). In the comments of that post, Ryan Bates suggests that this might be useful for “simulating destroying a model (like acts_as_paranoid).” Indeed this is possible and the idea of using scoping to create this is both present in acts_as_paranoid itself and also has been brought up before. In this article I’m going to reinvent the wheel using default_scope to illustrate how powerful default_scope is and how trivial it makes this task. You can keep track of the finished product in my is_paranoid gem.