diff options
author | Nat Welch <nat@natwelch.com> | 2011-09-21 23:53:18 -0700 |
---|---|---|
committer | Nat Welch <nat@natwelch.com> | 2011-09-21 23:53:18 -0700 |
commit | 667d21814b67c615d3317488d0678cb992d3bdb1 (patch) | |
tree | d10e68a7d904641f88e6e835074273ab0bcafbc4 /activerecord/lib/active_record/relation/finder_methods.rb | |
parent | f69036781c0ee7a22a456fe3a6689277d44ed9a6 (diff) | |
parent | 2bf33bd4bcd488a35e641b32dd667f3092ea9197 (diff) | |
download | rails-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.rb | 12 |
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 |