Condense first_or_last a bit more
This commit is contained in:
parent
fdee153ff8
commit
ca7785847e
@ -498,7 +498,7 @@ def ensure_owner_is_persisted!
|
||||
# * 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 @@ def find_by_scan(*args)
|
||||
|
||||
# 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
|
||||
|
Loading…
Reference in New Issue
Block a user