Rails 2.3.3: Touching, faster JSON, bug fixes
We’ve released Ruby on Rails version 2.3.3. This release fixes a lot of bugs and introduces a handful of new features.
Active Record
touchis a convenient method to update a record’s timestamp and nothing else. This is extracted from apps whose models “touch” others when they change, such as a comment updating the parent.replies_changed_at timestamp after save and destroy. Timestamping an entire has_many association makes it easy to build a key for fragment caching that covers changes to the parent object and any of its children. This pattern is wrapped up asbelongs_to :parent, :touch => :replies_changed_at. When the child changes,parent.replies_changed_atis touched.:touch => trueis defaults to:touch => :updated_at.:primary_keyoption forbelongs_tofor broader support of legacy schemas and those using a separate UUID primary key:belongs_to :employee, :primary_key => 'SSN', :foreign_key => 'EMPID'changeset
JSON
- decoding backends for the json and yajl libraries. Both are significantly faster than the default YAML backend. To get started, install the json gem and set
ActiveSupport::JSON.backend = 'JSONGem'. - leaner user-facing encoding API. Since a JSON libraries implement
to_jsonwith varying compatibility, safely overriding it is difficult. Most customto_jsonlooks like
def to_json(*encoder_specific_args) { :some => "json representation" }.to_json(*encoder_specific_args) endso we DRYed the user-facing API down to a more natural
def as_json(options = {}) { :some => "json representation" } endwithout the ugly internal state exposed by overloading
to_jsonas both public-facing and internal builder API. Rails 3 splits the API explicitly, so prepare now by switching fromto_jsontoas_json.
Other Features
- Add :concat option to asset tag helpers to force concatenation. changeset
- Restore backwards compatibility for AR::Base#to_xml. changeset
- Move from BlueCloth to Markdown for the markdown helper. Users using BlueCloth to provide their markdown functionality should upgrade to version 1.0.1 or 2.0.5 in order to restore compatibility.
Notable Bug Fixes
- Fix errors caused by class-reloading with streaming responses in development mode.
- Several fixes to the gem bundling, unpacking and installing system.
- Make text_area_tag escape contents by default.
- Make filter_parameters work correctly with array parameters.
- Thread-safety fixes for postgresql string quoting.
- Performance fixes for large response bodies.


Recent comments
1 year 23 weeks ago
1 year 23 weeks ago
1 year 25 weeks ago
1 year 27 weeks ago
1 year 42 weeks ago
1 year 45 weeks ago
1 year 45 weeks ago
1 year 45 weeks ago
1 year 46 weeks ago
1 year 48 weeks ago