aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/relation/finder_methods.rb
diff options
context:
space:
mode:
authorNat Welch <nat@natwelch.com>2011-09-21 23:53:18 -0700
committerNat Welch <nat@natwelch.com>2011-09-21 23:53:18 -0700
commit667d21814b67c615d3317488d0678cb992d3bdb1 (patch)
treed10e68a7d904641f88e6e835074273ab0bcafbc4 /activerecord/lib/active_record/relation/finder_methods.rb
parentf69036781c0ee7a22a456fe3a6689277d44ed9a6 (diff)
parent2bf33bd4bcd488a35e641b32dd667f3092ea9197 (diff)
downloadrails-667d21814b67c615d3317488d0678cb992d3bdb1.tar.gz
rails-667d21814b67c615d3317488d0678cb992d3bdb1.tar.bz2
rails-667d21814b67c615d3317488d0678cb992d3bdb1.zip
Merge branch 'master' of git://github.com/rails/rails
Diffstat (limited to 'activerecord/lib/active_record/relation/finder_methods.rb')
-rw-r--r--activerecord/lib/active_record/relation/finder_methods.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/relation/finder_methods.rb b/activerecord/lib/active_record/relation/finder_methods.rb
index 73368aed18..7eeb3dde70 100644
--- a/activerecord/lib/active_record/relation/finder_methods.rb
+++ b/activerecord/lib/active_record/relation/finder_methods.rb
@@ -114,7 +114,7 @@ module ActiveRecord
def first(*args)
if args.any?
if args.first.kind_of?(Integer) || (loaded? && !args.first.kind_of?(Hash))
- to_a.first(*args)
+ limit(*args).to_a
else
apply_finder_options(args.first).first
end
@@ -134,7 +134,11 @@ module ActiveRecord
def last(*args)
if args.any?
if args.first.kind_of?(Integer) || (loaded? && !args.first.kind_of?(Hash))
- to_a.last(*args)
+ if order_values.empty? && reorder_value.nil?
+ order("#{primary_key} DESC").limit(*args).reverse
+ else
+ to_a.last(*args)
+ end
else
apply_finder_options(args.first).last
end
@@ -180,7 +184,9 @@ module ActiveRecord
# Person.exists?(:name => "David")
# Person.exists?(['name LIKE ?', "%#{query}%"])
# Person.exists?
- def exists?(id = nil)
+ def exists?(id = false)
+ return false if id.nil?
+
id = id.id if ActiveRecord::Base === id
join_dependency = construct_join_dependency_for_association_find