Module: ActsAsHashids::Core::FinderMethods

Included in:
ClassMethods
Defined in:
lib/acts_as_hashids/core.rb

Instance Method Summary collapse

Instance Method Details

#find(ids = nil, &block) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/acts_as_hashids/core.rb', line 13

def find(ids = nil, &block)
  return detect(&block) if block.present? && respond_to?(:detect)

  encoded_ids = Array(ids).map { |id| id.is_a?(String) ? id : hashids.encode(id) }.flatten
  res = with_hashids(encoded_ids).all
  if ids.is_a?(Array)
    raise_record_not_found_exception! encoded_ids, res.size, encoded_ids.size if res.size != encoded_ids.size
  else
    raise_record_not_found_exception! encoded_ids[0], res.size, encoded_ids.size if res.empty?
    res = res[0]
  end
  res
end