diff options
author | Nikita Afanasenko <nafanasenko@spbtv.com> | 2012-11-13 21:19:48 +0400 |
---|---|---|
committer | Nikita Afanasenko <nafanasenko@spbtv.com> | 2012-11-13 21:24:58 +0400 |
commit | b56376b4509073a0ef7fc0a44e51619f1bf11d8e (patch) | |
tree | 5fa67deccfb2488297c1687deebcdf883cf1b5d1 /activerecord/lib | |
parent | 5ed0381db5e6dff1269f3f22ec4fa69c203c37d9 (diff) | |
download | rails-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')
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 2 |
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? |