13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# 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 do |id|
id = id.to_i if Integer(id)
hashids.encode(id)
rescue TypeError, ArgumentError
id
end
encoded_ids = encoded_ids.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
|