diff options
author | Sergey Alekseev <sergey.alekseev.minsk@gmail.com> | 2014-05-23 23:42:36 +0300 |
---|---|---|
committer | Sergey Alekseev <sergey.alekseev.minsk@gmail.com> | 2014-05-23 23:53:00 +0300 |
commit | 1a4d13b8f429afe218eb98d8dbf82780e4f191e6 (patch) | |
tree | fcdd4c6d8e55a896267c4b242e661e754399ff36 | |
parent | a6f55fe257512731d7f3f41976648d99e9ec95be (diff) | |
download | rails-1a4d13b8f429afe218eb98d8dbf82780e4f191e6.tar.gz rails-1a4d13b8f429afe218eb98d8dbf82780e4f191e6.tar.bz2 rails-1a4d13b8f429afe218eb98d8dbf82780e4f191e6.zip |
Remove duplicated parameter check on #where!
It seems that #where! is not designed to be used as a chained where.
See initial implementation at 8c2c60511beaad05a218e73c4918ab89fb1804f0.
So, no need to check twice.
We should not test #where!
https://github.com/rails/rails/pull/15285#discussion_r13018316
-rw-r--r-- | activerecord/lib/active_record/relation/query_methods.rb | 12 | ||||
-rw-r--r-- | activerecord/test/cases/relation/where_chain_test.rb | 2 |
2 files changed, 5 insertions, 9 deletions
diff --git a/activerecord/lib/active_record/relation/query_methods.rb b/activerecord/lib/active_record/relation/query_methods.rb index a607e9ac87..1262b2c291 100644 --- a/activerecord/lib/active_record/relation/query_methods.rb +++ b/activerecord/lib/active_record/relation/query_methods.rb @@ -573,15 +573,11 @@ WARNING end end - def where!(opts = :chain, *rest) # :nodoc: - if opts == :chain - WhereChain.new(self) - else - references!(PredicateBuilder.references(opts)) if Hash === opts + def where!(opts, *rest) # :nodoc: + references!(PredicateBuilder.references(opts)) if Hash === opts - self.where_values += build_where(opts, rest) - self - end + self.where_values += build_where(opts, rest) + self end # Allows you to change a previously set where condition for a given attribute, instead of appending to that condition. diff --git a/activerecord/test/cases/relation/where_chain_test.rb b/activerecord/test/cases/relation/where_chain_test.rb index c6decaad89..b9e69bdb08 100644 --- a/activerecord/test/cases/relation/where_chain_test.rb +++ b/activerecord/test/cases/relation/where_chain_test.rb @@ -99,7 +99,7 @@ module ActiveRecord assert_bound_ast value, Post.arel_table[@name], Arel::Nodes::NotEqual assert_equal 'ruby on rails', bind.last end - + def test_rewhere_with_one_condition relation = Post.where(title: 'hello').where(title: 'world').rewhere(title: 'alone') |