From 7176ade35b4d6b167873991e0851f3fb9d46ae3b Mon Sep 17 00:00:00 2001 From: Carl Lerche Date: Sat, 5 Feb 2011 15:37:38 -0800 Subject: [PATCH] Do not require that validation attributes be specified as symbols --- activemodel/lib/active_model/validations/validates.rb | 3 +-- activemodel/test/cases/validations/validates_test.rb | 11 +++++++++++ 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 @@ def validates(*attributes) 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 @@ def _parse_validates_options(options) #:nodoc: 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 @@ def test_validates_with_built_in_validation 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 -- GitLab