diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2012-05-05 15:19:36 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2012-05-05 15:19:36 -0700 |
commit | bad119cae5ff6f3d27d82b9bdc9fc3cf4f67d271 (patch) | |
tree | bb937d1f9b8dde00312f0e5af0c06386baf89c2d /activerecord/lib | |
parent | 4d8bc1da8804b81f4c8eb298cd9383160f0a3825 (diff) | |
parent | 56bf1f74557e68455552eeac1bc975cf9ba57766 (diff) | |
download | rails-bad119cae5ff6f3d27d82b9bdc9fc3cf4f67d271.tar.gz rails-bad119cae5ff6f3d27d82b9bdc9fc3cf4f67d271.tar.bz2 rails-bad119cae5ff6f3d27d82b9bdc9fc3cf4f67d271.zip |
Merge pull request #6173 from mhfs/takes_instead_first
Use `take` instead of `first` to avoid unwanted implicit ordering. Closes #6147.
Diffstat (limited to 'activerecord/lib')
-rw-r--r-- | activerecord/lib/active_record/relation/finder_methods.rb | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb index a78e3d08e4..cc716bbfd1 100644 --- a/activerecord/lib/active_record/relation/finder_methods.rb +++ b/activerecord/lib/active_record/relation/finder_methods.rb @@ -51,13 +51,13 @@ module ActiveRecord # Post.find_by "published_at < ?", 2.weeks.ago # def find_by(*args) - where(*args).first + where(*args).take end # Like <tt>find_by</tt>, except that if no record is found, raises # an <tt>ActiveRecord::RecordNotFound</tt> error. def find_by!(*args) - where(*args).first! + where(*args).take! end # Gives a record (or N records if a parameter is supplied) without any implied @@ -269,7 +269,7 @@ module ActiveRecord substitute = connection.substitute_at(column, bind_values.length) relation = where(table[primary_key].eq(substitute)) relation.bind_values += [[column, id]] - record = relation.first + record = relation.take unless record conditions = arel.where_sql @@ -309,7 +309,7 @@ module ActiveRecord def find_take if loaded? - @records.take(1).first + @records.first else @take ||= limit(1).to_a.first end |