aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation
diff options
context:
space:
mode:
authorNikita Afanasenko <nafanasenko@spbtv.com>2012-11-13 21:19:48 +0400
committerNikita Afanasenko <nafanasenko@spbtv.com>2012-11-13 21:24:58 +0400
commitb56376b4509073a0ef7fc0a44e51619f1bf11d8e (patch)
tree5fa67deccfb2488297c1687deebcdf883cf1b5d1 /activerecord/lib/active_record/relation
parent5ed0381db5e6dff1269f3f22ec4fa69c203c37d9 (diff)
downloadrails-b56376b4509073a0ef7fc0a44e51619f1bf11d8e.tar.gz
rails-b56376b4509073a0ef7fc0a44e51619f1bf11d8e.tar.bz2
rails-b56376b4509073a0ef7fc0a44e51619f1bf11d8e.zip
Use nil? instead of blank? to check dynamic finder result
It's safe to use `nil?` instead of `blank?` because it's impossible to get an array on finder with bang; `all_by` finder matches against regex without bang: `when /^find_(all_|last_)?by_([_a-zA-Z]\w*)$/`. Fixes #7238
Diffstat (limited to 'activerecord/lib/active_record/relation')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index abc67d9c15..44aeb309d6 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -263,7 +263,7 @@ module ActiveRecord
conditions = Hash[attributes.map {|a| [a, args[attributes.index(a)]]}]
result = where(conditions).send(match.finder)
- if match.bang? && result.blank?
+ if match.bang? && result.nil?
raise RecordNotFound, "Couldn't find #{@klass.name} with #{conditions.to_a.collect {|p| p.join(' = ')}.join(', ')}"
else
yield(result) if block_given?