aboutsummaryrefslogtreecommitdiffstats
path: root/guides/source/association_basics.md
diff options
context:
space:
mode:
authorRoque Pinel <repinel@gmail.com>2015-06-02 21:34:32 -0500
committerRoque Pinel <repinel@gmail.com>2015-06-02 22:16:10 -0500
commitefa1648f282f3844656e5a89ea2207934bcb1130 (patch)
tree233e4064ee3de4ceea0265c607e7771998f9c7a5 /guides/source/association_basics.md
parent8193a09a1f0f15c4b7624d6c24e8a779baa64d39 (diff)
downloadrails-efa1648f282f3844656e5a89ea2207934bcb1130.tar.gz
rails-efa1648f282f3844656e5a89ea2207934bcb1130.tar.bz2
rails-efa1648f282f3844656e5a89ea2207934bcb1130.zip
[ci skip] fix the `collection.clear` guide
Improve the guide about `has_many` `collection.clear` to indicate the behavior for each dependent strategy according to `collection.delete_all`. Based on #17179, I changed the `collection.delete` docs to also clarify the default strategy for each `hm` and `hm:t` associations. Fixes #20170.
Diffstat (limited to 'guides/source/association_basics.md')
-rw-r--r--guides/source/association_basics.md8
1 files changed, 7 insertions, 1 deletions
diff --git a/guides/source/association_basics.md b/guides/source/association_basics.md
index b9c9995a79..3f63c31cce 100644
--- a/guides/source/association_basics.md
+++ b/guides/source/association_basics.md
@@ -1467,7 +1467,13 @@ The `collection_singular_ids=` method makes the collection contain only the obje
##### `collection.clear`
-The `collection.clear` method removes every object from the collection. This destroys the associated objects if they are associated with `dependent: :destroy`, deletes them directly from the database if `dependent: :delete_all`, and otherwise sets their foreign keys to `NULL`.
+The `collection.clear` method removes all objects from the collection according to the strategy specified by the `dependent` option. If no option is given, it follows the default strategy. The default strategy for `has_many :through` associations is `delete_all`, and for `has_many` associations is to set the foreign keys to `NULL`.
+
+```ruby
+@customer.orders.clear
+```
+
+WARNING: Objects will be delete if they're associated with `dependent: :destroy`, just like `dependent: :delete_all`.
##### `collection.empty?`