Module: ActiveRecord::Core::ClassMethods
- Defined in:
- lib/composite_primary_keys/core.rb
Instance Method Summary collapse
-
#find(*ids) ⇒ Object
:nodoc:.
Instance Method Details
#find(*ids) ⇒ Object
:nodoc:
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/composite_primary_keys/core.rb', line 43 def find(*ids) # :nodoc: # We don't have cache keys for this stuff yet return super unless ids.length == 1 return super if block_given? || primary_key.nil? || scope_attributes? || columns_hash.key?(inheritance_column) && !base_class? # CPK return super if self.composite? id = ids.first return super if StatementCache.unsupported_value?(id) key = primary_key statement = cached_find_by_statement(key) { |params| where(key => params.bind).limit(1) } record = statement.execute([id], connection)&.first unless record raise ::ActiveRecord::RecordNotFound.new("Couldn't find #{name} with '#{key}'=#{id}", name, key, id) end record end |