aboutsummaryrefslogtreecommitdiffstats
path: root/activemodel
diff options
context:
space:
mode:
authorCarl Lerche <me@carllerche.com>2011-02-05 15:37:38 -0800
committerCarl Lerche <me@carllerche.com>2011-02-05 15:37:38 -0800
commit7176ade35b4d6b167873991e0851f3fb9d46ae3b (patch)
treea4141221525f67cab26f2b0d9e2e7f1bf25c094c /activemodel
parentb9309b47cda12db34ac3427fbafff2dca0314ed7 (diff)
downloadrails-7176ade35b4d6b167873991e0851f3fb9d46ae3b.tar.gz
rails-7176ade35b4d6b167873991e0851f3fb9d46ae3b.tar.bz2
rails-7176ade35b4d6b167873991e0851f3fb9d46ae3b.zip
Do not require that validation attributes be specified as symbols
Diffstat (limited to 'activemodel')
-rw-r--r--activemodel/lib/active_model/validations/validates.rb3
-rw-r--r--activemodel/test/cases/validations/validates_test.rb11
2 files changed, 12 insertions, 2 deletions
diff --git a/activemodel/lib/active_model/validations/validates.rb b/activemodel/lib/active_model/validations/validates.rb
index 0132f68282..172ca70c19 100644
--- a/activemodel/lib/active_model/validations/validates.rb
+++ b/activemodel/lib/active_model/validations/validates.rb
@@ -84,7 +84,6 @@ module ActiveModel
validations = defaults.slice!(:if, :unless, :on, :allow_blank, :allow_nil)
raise ArgumentError, "You need to supply at least one attribute" if attributes.empty?
- raise ArgumentError, "Attribute names must be symbols" if attributes.any?{ |attribute| !attribute.is_a?(Symbol) }
raise ArgumentError, "You need to supply at least one validation" if validations.empty?
defaults.merge!(:attributes => attributes)
@@ -118,4 +117,4 @@ module ActiveModel
end
end
end
-end \ No newline at end of file
+end
diff --git a/activemodel/test/cases/validations/validates_test.rb b/activemodel/test/cases/validations/validates_test.rb
index 3a9900939e..431d2fd623 100644
--- a/activemodel/test/cases/validations/validates_test.rb
+++ b/activemodel/test/cases/validations/validates_test.rb
@@ -21,6 +21,17 @@ class ValidatesTest < ActiveModel::TestCase
assert_equal ['is not a number'], person.errors[:title]
end
+ def test_validates_with_attribute_specified_as_string
+ Person.validates "title", :numericality => true
+ person = Person.new
+ person.valid?
+ assert_equal ['is not a number'], person.errors[:title]
+
+ person = Person.new
+ person.title = 123
+ assert person.valid?
+ end
+
def test_validates_with_built_in_validation_and_options
Person.validates :salary, :numericality => { :message => 'my custom message' }
person = Person.new