## Rails 3.0.16 (Jul 26, 2012)
* No changes.
## Rails 3.0.14 (Jun 12, 2012)
* protect against the nesting of hashes changing the
table context in the next call to build_from_hash. This fix
covers this case as well.
CVE-2012-2695
pkgsrc change: add RUBY_RAILS_STRICT_DEP which will be enabled later.
## Rails 3.0.14 (Jun 12, 2012)
* protect against the nesting of hashes changing the
table context in the next call to build_from_hash. This fix
covers this case as well.
CVE-2012-2695
* Rails 3.0.13 (May 31, 2012)
* Bugfix circular reference while saving has_one relationship
* Test for circular reference while saving has_one relationship
* Fixed typo in composed_of example with Money#<=>
* predicate builder should not recurse for determining where columns.
Thanks to Ben Murphy for reporting this! CVE-2012-2661
* Rails 3.0.11 (unreleased)
* Exceptions from database adapters should not lose their backtrace.
* Backport "ActiveRecord::Persistence#touch should not use default_scope"
(GH #1519)
* Psych errors with poor yaml formatting are proxied. Fixes GH #2645 and
GH #2731
* Fix ActiveRecord#exists? when passsed a nil value
Rails 3.0.10
* Magic encoding comment added to schema.rb files
* schema.rb is written as UTF-8 by default.
* Ensuring an established connection when running `rake db:schema:dump`
* Association conditions will not clobber join conditions.
* Destroying a record will destroy the HABTM record before destroying
itself. GH #402.
* Make `ActiveRecord::Batches#find_each` to not return `self`.
* Update `table_exists?` in PG to to always use current search_path or
schema if explictly set.
*Rails 3.0.8 (unreleased)*
* Fix various problems with using :primary_key and :foreign_key options in conjunction with
:through associations. [Jon Leighton]
* Correctly handle inner joins on polymorphic relationships.
* Fixed infinity and negative infinity cases in PG date columns.
* Creating records with invalid associations via `create` or `save` will no
longer raise exceptions.
*Rails 3.0.6 (April 5, 2011)
* Un-deprecate reorder method [Sebastian Martinez]
* Extensions are applied when calling +except+ or +only+ on relations.
Thanks to Iain Hecker.
* Schemas set in set_table_name are respected by the mysql adapter. LH #5322
* Fixed a bug when empty? was called on a grouped Relation that wasn't loaded.
LH #5829
* Reapply extensions when using except and only. Thanks Iain Hecker.
* Binary data is escaped when being inserted to SQLite3 Databases. Thanks
Naruse!
*Rails 3.0.5 (unreleased)*
* Model.where(:column => 1).where(:column => 2) will always produce an
AND query.
[Aaron Patterson]
* Deprecated support for interpolated association conditions in the
form of :conditions => 'foo = #{bar}'.
Instead, you should use a proc, like so:
Before:
has_many :things, :conditions => 'foo = #{bar}'
After:
has_many :things, :conditions => proc { "foo = #{bar}" }
Inside the proc, 'self' is the object which is the owner of the
association, unless you are eager loading the association, in which
case 'self' is the class which the association is within.
You can have any "normal" conditions inside the proc, so the
following will work too:
has_many :things, :conditions => proc { ["foo = ?", bar] }
Previously :insert_sql and :delete_sql on has_and_belongs_to_many
association allowed you to call 'record' to get the record being
inserted or deleted. This is now passed as an argument to the proc.
[Jon Leighton]
* More strict dependency reflect gemspec's description.
*Rails 3.0.4 (unreleased)*
* Added deprecation warning for has_and_belongs_to_many associations where the join table has
additional attributes other than the keys. Access to these attributes is removed in 3.1.
Please use has_many :through instead. [Jon Leighton]
*Rails 3.0.3 (November 16, 2010)*
* Support find by class like this: Post.where(:name => Post)
*Rails 3.0.2 (November 15, 2010)*
* Dramatic speed increase (see: http://engineering.attinteractive.com/2010/10/arel-two-point-ohhhhh-yaaaaaa/) [Aaron Patterson]
* reorder is deprecated in favor of except(:order).order(...) [Santiago Pastorino]
* except is now AR public API
Model.order('name').except(:order).order('salary')
generates:
SELECT * FROM models ORDER BY salary
[Santiago Pastorino]
* The following code:
Model.limit(10).scoping { Model.count }
now generates the following SQL:
SELECT COUNT(*) FROM models LIMIT 10
This may not return what you want. Instead, you may with to do something
like this:
Model.limit(10).scoping { Model.all.size }
[Aaron Patterson]
= Active Record -- Object-relational mapping put on rails
Active Record connects classes to relational database tables to establish an
almost zero-configuration persistence layer for applications. The library
provides a base class that, when subclassed, sets up a mapping between the new
class and an existing table in the database. In context of an application,
these classes are commonly referred to as *models*. Models can also be
connected to other models; this is done by defining *associations*.
(This is part of Ruby on Rails 3.)