diff options
author | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-01-31 12:09:08 -0200 |
---|---|---|
committer | Carlos Antonio da Silva <carlosantoniodasilva@gmail.com> | 2012-01-31 12:09:09 -0200 |
commit | 31fce0192ee83ee13e2b17fdeefa712227019e49 (patch) | |
tree | cc2be72c07b0d52978952ec87d78deb5f075929c /railties | |
parent | 0d5f7dac3dbbd788763e3b6fffce40dfc7a3ba84 (diff) | |
download | rails-31fce0192ee83ee13e2b17fdeefa712227019e49.tar.gz rails-31fce0192ee83ee13e2b17fdeefa712227019e49.tar.bz2 rails-31fce0192ee83ee13e2b17fdeefa712227019e49.zip |
Improve readonly examples and optimistic locking docs
* Relation#order can receive order attributes as different arguments,
add example;
* Readonly does not handle deletion of records, only modification;
* locking_version column does not need to default to 0, Rails handles
nil values;
* Change references from "set_locking_column" to "self.locking_column".
Diffstat (limited to 'railties')
-rw-r--r-- | railties/guides/source/active_record_querying.textile | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/railties/guides/source/active_record_querying.textile b/railties/guides/source/active_record_querying.textile index 84687e2e4f..6ac5204ae5 100644 --- a/railties/guides/source/active_record_querying.textile +++ b/railties/guides/source/active_record_querying.textile @@ -404,6 +404,8 @@ Or ordering by multiple fields: <ruby> Client.order("orders_count ASC, created_at DESC") +# OR +Client.order("orders_count ASC", "created_at DESC") </ruby> h3. Selecting Specific Fields @@ -608,7 +610,7 @@ This method accepts *no* arguments. h3. Readonly Objects -Active Record provides +readonly+ method on a relation to explicitly disallow modification or deletion of any of the returned object. Any attempt to alter or destroy a readonly record will not succeed, raising an +ActiveRecord::ReadOnlyRecord+ exception. +Active Record provides +readonly+ method on a relation to explicitly disallow modification of any of the returned objects. Any attempt to alter a readonly record will not succeed, raising an +ActiveRecord::ReadOnlyRecord+ exception. <ruby> client = Client.readonly.first @@ -648,15 +650,13 @@ c2.save # Raises an ActiveRecord::StaleObjectError You're then responsible for dealing with the conflict by rescuing the exception and either rolling back, merging, or otherwise apply the business logic needed to resolve the conflict. -NOTE: You must ensure that your database schema defaults the +lock_version+ column to +0+. - This behavior can be turned off by setting <tt>ActiveRecord::Base.lock_optimistically = false</tt>. -To override the name of the +lock_version+ column, +ActiveRecord::Base+ provides a class method called +set_locking_column+: +To override the name of the +lock_version+ column, +ActiveRecord::Base+ provides a class attribute called +locking_column+: <ruby> class Client < ActiveRecord::Base - set_locking_column :lock_client_column + self.locking_column = :lock_client_column end </ruby> |