From 386e224ee32e5b4955fda645c66175e34bf673bd Mon Sep 17 00:00:00 2001 From: Koichi ITO Date: Thu, 10 Dec 2020 17:42:23 +0900 Subject: [PATCH] [Fix #401] Fix an error for `Rails/WhereEquals` Fixes #401. This PR fixes an error for `Rails/WhereEquals` when using only named placeholder template without replacement argument. --- CHANGELOG.md | 4 ++++ spec/rubocop/cop/rails/where_equals_spec.rb | 8 ++++++++ 2 files changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 13d779fe58..6ebe901afb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ ## master (unreleased) +### Bug fixes + +* [#401](https://github.com/rubocop-hq/rubocop-rails/issues/401): Fix an error for `Rails/WhereEquals` using only named placeholder template without replacement argument. ([@koic][]) + ## 2.9.0 (2020-12-09) ### New features diff --git a/spec/rubocop/cop/rails/where_equals_spec.rb b/spec/rubocop/cop/rails/where_equals_spec.rb index 938fdeb4dd..59b03a4a09 100644 --- a/spec/rubocop/cop/rails/where_equals_spec.rb +++ b/spec/rubocop/cop/rails/where_equals_spec.rb @@ -160,4 +160,12 @@ User.where('name = ? AND age = ?', 'john', 19) RUBY end + + it 'does not register an offense when using only named placeholder template without replacement argument' do + expect_no_offenses(<<~'RUBY') + sql = User.where('name = :name').select(:id).to_sql + + User.where("id IN (#{sql})", name: 'Lastname').first + RUBY + end end