diff options
Diffstat (limited to 'railties/doc/guides/source/2_2_release_notes.txt')
-rw-r--r-- | railties/doc/guides/source/2_2_release_notes.txt | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/railties/doc/guides/source/2_2_release_notes.txt b/railties/doc/guides/source/2_2_release_notes.txt index 2e9e9b8aa1..1e5c21f913 100644 --- a/railties/doc/guides/source/2_2_release_notes.txt +++ b/railties/doc/guides/source/2_2_release_notes.txt @@ -44,7 +44,7 @@ The internal documentation of Rails, in the form of code comments, has been impr All told, the Guides provide tens of thousands of words of guidance for beginning and intermediate Rails developers. -If you want to these generate guides locally, inside your application: +If you want to generate these guides locally, inside your application: [source, ruby] ------------------------------------------------------- @@ -118,11 +118,12 @@ There are two big additions to talk about here: transactional migrations and poo === Transactional Migrations -Historically, multiple-step Rails migrations have been a source of trouble. If something went wrong during a migration, everything before the error changed the database and everything after the error wasn't applied. Also, the migration version was stored as having been executed, which means that it couldn't be simply rerun by +rake db:migrate:redo+ after you fix the problem. Transactional migrations change this by wrapping migration steps in a DDL transaction, so that if any of them fail, the entire migration is undone. In Rails 2.2, transactional migrations are supported *on PostgreSQL only*. The code is extensible to other database types in the future. +Historically, multiple-step Rails migrations have been a source of trouble. If something went wrong during a migration, everything before the error changed the database and everything after the error wasn't applied. Also, the migration version was stored as having been executed, which means that it couldn't be simply rerun by +rake db:migrate:redo+ after you fix the problem. Transactional migrations change this by wrapping migration steps in a DDL transaction, so that if any of them fail, the entire migration is undone. In Rails 2.2, transactional migrations are supported on PostgreSQL out of the box. The code is extensible to other database types in the future - and IBM has already extended it to support the DB2 adapter. * Lead Contributor: link:http://adam.blog.heroku.com/[Adam Wiggins] * More information: - link:http://adam.blog.heroku.com/past/2008/9/3/ddl_transactions/[DDL Transactions] + - link:http://db2onrails.com/2008/11/08/a-major-milestone-for-db2-on-rails/[A major milestone for DB2 on Rails] === Connection Pooling @@ -208,11 +209,11 @@ Active Record association proxies now respect the scope of methods on the proxie == Action Controller -On the controller side, there are a couple of changes that will help tidy up your routes. +On the controller side, there are several changes that will help tidy up your routes. There are also some internal changes in the routing engine to lower memory usage on complex applications. === Shallow Route Nesting -Shallow route nesting provides a solution to the well-known difficulty of using deeply-nested resources. With shallow nesting, you need only supply enough information to uniquely identify the resource that you want to work with - but you _can_ supply more information. +Shallow route nesting provides a solution to the well-known difficulty of using deeply-nested resources. With shallow nesting, you need only supply enough information to uniquely identify the resource that you want to work with. [source, ruby] ------------------------------------------------------- @@ -249,7 +250,17 @@ map.resources :photos, :collection => { :search => [:get, :post] } * Lead Contributor: link:http://brennandunn.com/[Brennan Dunn] -Action Controller now offers good support for HTTP conditional GET requests, as well as some other additions. +=== Resources With Specific Actions + +By default, when you use +map.resources+ to create a route, Rails generates routes for seven default actions (index, show, create, new, edit, update, and destroy). But each of these routes takes up memory in your application, and causes Rails to generate additional routing logic. Now you can use the +:only+ and +:except+ options to fine-tune the routes that Rails will generate for resources. You can supply a single action, an array of actions, or the special +:all+ or +:none+ options. These options are inherited by nested resources. + +[source, ruby] +------------------------------------------------------- +map.resources :photos, :only => [:index, :show] +map.resources :products, :except => :destroy +------------------------------------------------------- + +* Lead Contributor: link:http://experthuman.com/[Tom Stuart] === Other Action Controller Changes @@ -259,6 +270,8 @@ Action Controller now offers good support for HTTP conditional GET requests, as * Rails now supports HTTP-only cookies (and uses them for sessions), which help mitigate some cross-site scripting risks in newer browsers. * +redirect_to+ now fully supports URI schemes (so, for example, you can redirect to a svn+ssh: URI). * +render+ now supports a +:js+ option to render plain vanilla javascript with the right mime type. +* Request forgery protection has been tightened up to apply to HTML-formatted content requests only. +* Polymorphic URLs behave more sensibly if a passed parameter is nil. For example, calling +polymorphic_path([@project, @date, @area])+ with a nil date will give you +project_area_path+. == Action View @@ -274,6 +287,8 @@ Action Mailer now supports mailer layouts. You can make your HTML emails as pret * More information: - link:http://ryandaigle.com/articles/2008/9/7/what-s-new-in-edge-rails-mailer-layouts[What's New in Edge Rails: Mailer Layouts] +Action Mailer now offers built-in support for GMail's SMTP servers, by turning on STARTTLS automatically. This requires Ruby 1.8.7 to be installed. + == Active Support Active Support now offers built-in memoization for Rails applications, the +each_with_object+ method, prefix support on delegates, and various other new utility methods. @@ -388,7 +403,7 @@ You can unpack or install a single gem by specifying +GEM=_gem_name_+ on the com * Instructions for setting up a continuous integration server to build Rails itself are included in the Rails source * +rake notes:custom ANNOTATION=MYFLAG+ lets you list out custom annotations. * Wrapped +Rails.env+ in +StringInquirer+ so you can do +Rails.env.development?+ -* +script/generate+ works without deprecation warnings when RubyGems 1.3.0 is present +* To eliminate deprecation warnings and properly handle gem dependencies, Rails now requires rubygems 1.3.1 or higher. == Deprecated |