What's new in Rails 2.0.4 ------------------------- Action Mailer * Less verbose mail logging: just recipients for :info log level; the whole email for :debug only. #8000 [iaddict, Tarmo Tänav] * Updated TMail to version 1.2.1 [raasdnil] * Fixed that you don't have to call super in ActionMailer::TestCase#setup #10406 [jamesgolick] Action Pack * Avoid remote_ip spoofing. [Brian Candler] * Correct inconsistencies in RequestForgeryProtection docs. #11032 [mislav] * Make assert_routing aware of the HTTP method used. #8039 [mpalmer] e.g. assert_routing({ :method => 'put', :path => '/product/321' }, { :controller => "product", :action => "update", :id => "321" }) * Remove ERB trim variables from trace template in case ActionView::Base.erb_trim_mode is changed in the application. #10098 [tpope, kampers] * Fix typo in form_helper documentation. #10650 [xaviershay, kampers] * Fix bug with setting Request#format= after the getter has cached the value. #10889 [cch1] * Add label_tag helper for generating elements. #10802 [DefV] * TestSession supports indifferent access. #7372 [tamc, Arsen7, mhackett, julik, jean.helou] * UrlWriter respects relative_url_root. #10748 [Cheah Chu Yeow] * Support render :text => nil. #6684 [tjennings, PotatoSalad, Cheah Chu Yeow] * assert_response failures include the exception message. #10688 [Seth Rasmussen] * Fixed rendering of partials with layout when done from site layout #9209 [antramm] * Fix atom_feed_helper to comply with the atom spec. Closes #10672 [xaviershay] * The tags created do not contain a date (http://feedvalidator.org/docs/error/InvalidTAG.html) * IDs are not guaranteed unique * A default self link was not provided, contrary to the documentation * NOTE: This changes tags for existing atom entries, but at least they validate now. * Correct indentation in tests. Closes #10671 [l.guidi] * Fix that auto_link looks for ='s in url paths (Amazon urls have them). Closes #10640 [bgreenlee] * Ensure that test case setup is run even if overridden. #10382 [Josh Peek] * Fix HTML Sanitizer to allow trailing spaces in CSS style attributes. Closes #10566 [wesley.moxam] * Add :default option to time_zone_select. #10590 [Matt Aimonetti] Active Record * Migrations: create_table supports primary_key_prefix_type. #10314 [student, thechrisoshow] * Ensure that ActiveRecord::Calculations disambiguates field names with the table name. #11027 [cavalle] * Ensure that modifying has_and_belongs_to_many actions clear the query cache. Closes #10840 [john.andrews] * Fix issue where Table#references doesn't pass a :null option to a *_type attribute for polymorphic associations. Closes #10753 [railsjitsu] * update_all ignores scoped :order and :limit, so post.comments.update_all doesn't try to include the comment order in the update statement. #10686 [Brendan Ribera] * Added by parameter to increment, decrement, and their bang varieties so you can do player1.increment!(:points, 5) #10542 [Sam] * Optimize ActiveRecord::Base#exists? to use #select_all instead of #find. Closes #10605 [jamesh, fcheung, protocool] * Don't unnecessarily load has_many associations in after_update callbacks. Closes #6822 [stopdropandrew, canadaduane] * Eager belongs_to :include infers the foreign key from the association name rather than the class name. #10517 [Jonathan Viney] * SQLite: fix rename_ and remove_column for columns with unique indexes. #10576 [Brandon Keepers] * Ruby 1.9 compatibility. [Jeremy Kemper] Active Resource * Fix small documentation typo. Closes #10670 [l.guidi] * find_or_create_resource_for handles module nesting. #10646 [xavier] * Allow setting ActiveResource::Base#format before #site. [rick] * Support agnostic formats when calling custom methods. Closes #10635 [joerichsen] * Document custom methods. #10589 [Cheah Chu Yeow] * Ruby 1.9 compatibility. [Jeremy Kemper] Active Support * Fixed the rexml vulnerability disclosed at http://www.ruby-lang.org/en/news/2008/08/23/dos-vulnerability-in-rexml/ [koz] * Remove :nodoc: entries around the ActiveSupport test/unit assertions. #10946 [dancroak, jamesh] * Fixed String#titleize to work for strings with 's too #10571 [trek] * Changed the implementation of Enumerable#group_by to use a double array approach instead of a hash such that the insert order is honored [DHH/Marcel] * remove multiple enumerations from ActiveSupport::JSON#convert_json_to_yaml when dealing with date/time values. [rick] * Hash#symbolize_keys skips keys that can't be symbolized. #10500 [Brad Greenlee] * Ruby 1.9 compatibility. #1689, #10466, #10468, #10554 [Cheah Chu Yeow, Pratik Naik, Jeremy Kemper, Dirkjan Bussink] * TimeZone#to_s uses UTC rather than GMT. #1689 [Cheah Chu Yeow] * Refactor of Hash#symbolize_keys! to use Hash#replace. Closes #10420 [ReinH] * Fix HashWithIndifferentAccess#to_options! so it doesn't clear the options hash. Closes #10419 [ReinH] Rail Ties * Resurrect WordNet synonym lookups. #10710 [tom./, matt] * Added that rails:update is run when you do rails:freeze:edge to ensure you also get the latest JS and config files #10565 [jeff] * SQLite: db:drop:all doesn't fail silently if the database is already open. #10577 [Cheah Chu Yeow, mrichman] * Ruby 1.9 compatibility. #1689, #10546 [Cheah Chu Yeow, frederico]