From 34659d64595e45da972d0a8a576346f0458353ab Mon Sep 17 00:00:00 2001 From: Neeraj Singh Date: Wed, 9 Jun 2010 23:07:54 -0400 Subject: [PATCH] validators should at model level and not at AR:Base level [#4804 state:resolved] --- activemodel/lib/active_model/validations.rb | 2 +- activerecord/test/cases/validations_test.rb | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/activemodel/lib/active_model/validations.rb b/activemodel/lib/active_model/validations.rb index f472f50..7520e03 100644 --- a/activemodel/lib/active_model/validations.rb +++ b/activemodel/lib/active_model/validations.rb @@ -54,7 +54,7 @@ module ActiveModel attr_accessor :validation_context - class_attribute :_validators + class_inheritable_accessor :_validators self._validators = Hash.new { |h,k| h[k] = [] } end diff --git a/activerecord/test/cases/validations_test.rb b/activerecord/test/cases/validations_test.rb index 9527404..3f1b0e3 100644 --- a/activerecord/test/cases/validations_test.rb +++ b/activerecord/test/cases/validations_test.rb @@ -9,6 +9,8 @@ require 'models/guid' require 'models/owner' require 'models/pet' require 'models/event' +require 'models/parrot' +require 'models/company' class ProtectedPerson < ActiveRecord::Base set_table_name 'people' @@ -189,4 +191,12 @@ class ValidationsTest < ActiveRecord::TestCase end assert_equal ["always invalid", "invalid on update"], p.errors[:name] end + + def test_validators + assert_equal 1, Parrot.validators.size + assert_equal 1, Company.validators.size + assert_equal 1, Parrot.validators_on(:name).size + assert_equal 1, Company.validators_on(:name).size + end + end -- 1.6.5.2