aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/collection_proxy.rb
diff options
context:
space:
mode:
authorFrancesco Rodriguez <lrodriguezsanc@gmail.com>2012-05-21 23:49:41 -0500
committerFrancesco Rodriguez <lrodriguezsanc@gmail.com>2012-05-21 23:49:41 -0500
commit1bcd5e42ed6c2efed4d1a53e74b4f8d6631b119d (patch)
tree9e4179823610c4e494c44963174943fe4a6681c8 /activerecord/lib/active_record/associations/collection_proxy.rb
parentf9a718eb5e3fe969c3a01cf084c6686cc2ce7aff (diff)
downloadrails-1bcd5e42ed6c2efed4d1a53e74b4f8d6631b119d.tar.gz
rails-1bcd5e42ed6c2efed4d1a53e74b4f8d6631b119d.tar.bz2
rails-1bcd5e42ed6c2efed4d1a53e74b4f8d6631b119d.zip
update CollectionProxy#delete_all documentation
Diffstat (limited to 'activerecord/lib/active_record/associations/collection_proxy.rb')
-rw-r--r--activerecord/lib/active_record/associations/collection_proxy.rb31
1 files changed, 29 insertions, 2 deletions
diff --git a/activerecord/lib/active_record/associations/collection_proxy.rb b/activerecord/lib/active_record/associations/collection_proxy.rb
index 650d68a64a..f0c4688ee3 100644
--- a/activerecord/lib/active_record/associations/collection_proxy.rb
+++ b/activerecord/lib/active_record/associations/collection_proxy.rb
@@ -228,7 +228,8 @@ module ActiveRecord
#
# If no <tt>:dependent</tt> option is given, then it will follow the
# default strategy. The default strategy is <tt>:nullify</tt>. This
- # sets the foreign keys to <tt>NULL</tt>.
+ # sets the foreign keys to <tt>NULL</tt>. For, +has_many+ <tt>:through</tt>,
+ # the default strategy is +delete_all+.
#
# class Person < ActiveRecord::Base
# has_many :pets # dependent: :nullify option by default
@@ -260,7 +261,8 @@ module ActiveRecord
# # ]
#
# If it is set to <tt>:destroy</tt> all the objects from the collection
- # are destroyed by calling their +destroy+ method.
+ # are removed by calling their +destroy+ method. See +destroy+ for more
+ # information.
#
# class Person < ActiveRecord::Base
# has_many :pets, dependent: :destroy
@@ -283,6 +285,31 @@ module ActiveRecord
#
# Pet.find(1, 2, 3)
# # => ActiveRecord::RecordNotFound
+ #
+ # If it is set to <tt>:delete_all</tt>, all the objects are deleted
+ # *without* calling their +destroy+ method.
+ #
+ # class Person < ActiveRecord::Base
+ # has_many :pets, dependent: :delete_all
+ # end
+ #
+ # person.pets.size # => 3
+ # person.pets
+ # # => [
+ # # #<Pet id: 1, name: "Fancy-Fancy", person_id: 1>,
+ # # #<Pet id: 2, name: "Spook", person_id: 1>,
+ # # #<Pet id: 3, name: "Choo-Choo", person_id: 1>
+ # # ]
+ #
+ # person.pets.delete_all
+ # # => [
+ # # #<Pet id: 1, name: "Fancy-Fancy", person_id: 1>,
+ # # #<Pet id: 2, name: "Spook", person_id: 1>,
+ # # #<Pet id: 3, name: "Choo-Choo", person_id: 1>
+ # # ]
+ #
+ # Pet.find(1, 2, 3)
+ # # => ActiveRecord::RecordNotFound
##
# :method: destroy_all