diff options
author | dreamfall <amarant.st@gmail.com> | 2012-01-17 13:18:58 +0300 |
---|---|---|
committer | dreamfall <amarant.st@gmail.com> | 2012-01-17 13:18:58 +0300 |
commit | e84998cc212c6c96c279ebd41619f51054f5642f (patch) | |
tree | 50166de246f6060b8ed83dc121f60ebc3b1cdf94 /activemodel | |
parent | 5f8274efe128ffeec8fa3179460f5167a078f007 (diff) | |
download | rails-e84998cc212c6c96c279ebd41619f51054f5642f.tar.gz rails-e84998cc212c6c96c279ebd41619f51054f5642f.tar.bz2 rails-e84998cc212c6c96c279ebd41619f51054f5642f.zip |
validates method should not change options argument
Diffstat (limited to 'activemodel')
-rw-r--r-- | activemodel/lib/active_model/validations/validates.rb | 2 | ||||
-rw-r--r-- | activemodel/test/cases/validations_test.rb | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/activemodel/lib/active_model/validations/validates.rb b/activemodel/lib/active_model/validations/validates.rb index 8e09f6ac35..0e6b349e94 100644 --- a/activemodel/lib/active_model/validations/validates.rb +++ b/activemodel/lib/active_model/validations/validates.rb @@ -80,7 +80,7 @@ module ActiveModel # validates :password, :presence => true, :confirmation => true, :if => :password_required? # def validates(*attributes) - defaults = attributes.extract_options! + defaults = attributes.extract_options!.dup validations = defaults.slice!(*_validates_default_keys) raise ArgumentError, "You need to supply at least one attribute" if attributes.empty? diff --git a/activemodel/test/cases/validations_test.rb b/activemodel/test/cases/validations_test.rb index 2f4376bd41..ed4d8fcdca 100644 --- a/activemodel/test/cases/validations_test.rb +++ b/activemodel/test/cases/validations_test.rb @@ -330,4 +330,10 @@ class ValidationsTest < ActiveModel::TestCase Topic.new.valid? end end + + def test_does_not_modify_options_argument + options = {:presence => true} + Topic.validates :title, options + assert_equal({:presence => true}, options) + end end |