diff options
author | Kassio Borges <kassioborgesm@gmail.com> | 2015-11-08 10:57:25 -0200 |
---|---|---|
committer | Kassio Borges <kassioborgesm@gmail.com> | 2015-11-08 10:58:39 -0200 |
commit | c8bbe9aefae3fdee1eebc8c3e95f5009f5148034 (patch) | |
tree | e4eab9384c95c45aefe223f41355a274f6bb909f /activerecord/test/cases/validations | |
parent | 25673f47b607528d12b0f4d1bace30b2c41a97fa (diff) | |
download | rails-c8bbe9aefae3fdee1eebc8c3e95f5009f5148034.tar.gz rails-c8bbe9aefae3fdee1eebc8c3e95f5009f5148034.tar.bz2 rails-c8bbe9aefae3fdee1eebc8c3e95f5009f5148034.zip |
Improve support for non Active Record objects on `validates_associated`
Skipping `marked_for_destruction?` when the associated object does not responds
to it make easier to validate virtual associations built on top of Active Model
objects and/or serialized objects that implement a `valid?` instance method.
Diffstat (limited to 'activerecord/test/cases/validations')
-rw-r--r-- | activerecord/test/cases/validations/association_validation_test.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/cases/validations/association_validation_test.rb b/activerecord/test/cases/validations/association_validation_test.rb index bff5ffa65e..584a3dc0d8 100644 --- a/activerecord/test/cases/validations/association_validation_test.rb +++ b/activerecord/test/cases/validations/association_validation_test.rb @@ -45,6 +45,18 @@ class AssociationValidationTest < ActiveRecord::TestCase assert t.valid? end + def test_validates_associated_without_marked_for_destruction + reply = Class.new do + def valid? + true + end + end + Topic.validates_associated(:replies) + t = Topic.new + t.define_singleton_method(:replies) { [reply.new] } + assert t.valid? + end + def test_validates_associated_with_custom_message_using_quotes Reply.validates_associated :topic, :message=> "This string contains 'single' and \"double\" quotes" Topic.validates_presence_of :content |