Browse files

updating options documentation for associations

removed unnecessary test case and improved test case for belongs_to having invalid  options
  • Loading branch information...
1 parent 948c0ff commit 647cff3a134772bc6374b89e95d13497e23b5309 @kuldeepaggarwal kuldeepaggarwal committed Nov 29, 2013
@@ -619,16 +619,11 @@ def test_dependent_delete_and_destroy_with_belongs_to
assert_equal [], AuthorAddress.destroyed_author_address_ids
- def test_invalid_belongs_to_dependent_option_nullify_raises_exception
- assert_raise ArgumentError do
+ def test_belongs_to_invalid_dependent_option_raises_exception
+ error = assert_raise ArgumentError do :special_author_address, :dependent => :nullify
- end
- def test_invalid_belongs_to_dependent_option_restrict_raises_exception
- assert_raise ArgumentError do
- :special_author_address, :dependent => :restrict
- end
+ assert_equal error.message, 'The :dependent option must be one of [:destroy, :delete], but is :nullify'
def test_attributes_are_being_set_when_initialized_from_belongs_to_association_with_where_clause
@@ -864,8 +864,12 @@ end
Counter cache columns are added to the containing model's list of read-only attributes through `attr_readonly`.
##### `:dependent`
+If you set the `:dependent` option to:
-If you set the `:dependent` option to `:destroy`, then deleting this object will call the `destroy` method on the associated object to delete that object. If you set the `:dependent` option to `:delete`, then deleting this object will delete the associated object _without_ calling its `destroy` method. If you set the `:dependent` option to `:restrict`, then attempting to delete this object will result in a `ActiveRecord::DeleteRestrictionError` if there are any associated objects.
+* `:destroy`, when the object is destroyed, `destroy` will be called on its
+associated objects.
+* `:delete`, when the object is destroyed, all its associated objects will be
+deleted directly from the database without calling their `destroy` method.
WARNING: You should not specify this option on a `belongs_to` association that is connected with a `has_many` association on the other class. Doing so can lead to orphaned records in your database.

0 comments on commit 647cff3

Please sign in to comment.