diff options
author | Matthew Draper <matthew@trebex.net> | 2014-05-03 16:19:24 +0930 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2014-05-03 16:29:40 +0930 |
commit | 022c797926591ed62d63f403ef314f2461b506ea (patch) | |
tree | 3e044af4274a7fc22f1e2950c5af198661dfc384 /activerecord/test | |
parent | 193eb6252f0b2f0031acdb3157d4bb2efc0447c6 (diff) | |
parent | c6d685ba1118cc1f6303122117df945ebe8fceae (diff) | |
download | rails-022c797926591ed62d63f403ef314f2461b506ea.tar.gz rails-022c797926591ed62d63f403ef314f2461b506ea.tar.bz2 rails-022c797926591ed62d63f403ef314f2461b506ea.zip |
Merge pull request #14924 from eric-chahin/issue_13854
Fixed custom validation context bug for child associations
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/cases/associations/has_many_associations_test.rb | 10 | ||||
-rw-r--r-- | activerecord/test/models/pirate.rb | 6 | ||||
-rw-r--r-- | activerecord/test/models/ship.rb | 6 |
3 files changed, 22 insertions, 0 deletions
diff --git a/activerecord/test/cases/associations/has_many_associations_test.rb b/activerecord/test/cases/associations/has_many_associations_test.rb index 151edfc6a1..d748e80695 100644 --- a/activerecord/test/cases/associations/has_many_associations_test.rb +++ b/activerecord/test/cases/associations/has_many_associations_test.rb @@ -26,6 +26,8 @@ require 'models/reference' require 'models/job' require 'models/college' require 'models/student' +require 'models/pirate' +require 'models/ship' class HasManyAssociationsTestForReorderWithJoinDependency < ActiveRecord::TestCase fixtures :authors, :posts, :comments @@ -1883,4 +1885,12 @@ class HasManyAssociationsTest < ActiveRecord::TestCase end end end + + test 'has_many_association passes context validation to validate children' do + pirate = FamousPirate.new + pirate.famous_ships << ship = FamousShip.new + assert_equal true, pirate.valid? + assert_equal false, pirate.valid?(:conference) + assert_equal "can't be blank", ship.errors[:name].first + end end diff --git a/activerecord/test/models/pirate.rb b/activerecord/test/models/pirate.rb index e472cf951d..90a3c3ecee 100644 --- a/activerecord/test/models/pirate.rb +++ b/activerecord/test/models/pirate.rb @@ -84,3 +84,9 @@ end class DestructivePirate < Pirate has_one :dependent_ship, :class_name => 'Ship', :foreign_key => :pirate_id, :dependent => :destroy end + +class FamousPirate < ActiveRecord::Base + self.table_name = 'pirates' + has_many :famous_ships + validates_presence_of :catchphrase, on: :conference +end
\ No newline at end of file diff --git a/activerecord/test/models/ship.rb b/activerecord/test/models/ship.rb index 3da031946f..77a4728d0b 100644 --- a/activerecord/test/models/ship.rb +++ b/activerecord/test/models/ship.rb @@ -17,3 +17,9 @@ class Ship < ActiveRecord::Base false end end + +class FamousShip < ActiveRecord::Base + self.table_name = 'ships' + belongs_to :famous_pirate + validates_presence_of :name, on: :conference +end |