mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Condense first_or_last a bit more
This commit is contained in:
@@ -498,7 +498,7 @@ module ActiveRecord
|
||||
# * target contains new or changed record(s)
|
||||
# * the first arg is an integer (which indicates the number of records to be returned)
|
||||
def fetch_first_or_last_using_find?(args)
|
||||
if args.first.kind_of?(Hash) && !args.first.empty?
|
||||
if args.first.is_a?(Hash)
|
||||
true
|
||||
else
|
||||
!(loaded? ||
|
||||
@@ -536,12 +536,10 @@ module ActiveRecord
|
||||
|
||||
# Fetches the first/last using SQL if possible, otherwise from the target array.
|
||||
def first_or_last(type, *args)
|
||||
if fetch_first_or_last_using_find?(args)
|
||||
scoped.send(type, *args)
|
||||
else
|
||||
args.shift if args.first.kind_of?(Hash) && args.first.empty?
|
||||
load_target.send(type, *args)
|
||||
end
|
||||
args.shift if args.first.is_a?(Hash) && args.first.empty?
|
||||
|
||||
collection = fetch_first_or_last_using_find?(args) ? scoped : load_target
|
||||
collection.send(type, *args)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user