Module: ActiveRecord::ObscuredId::ClassMethods

Defined in:
lib/activerecord-obscuredid.rb

Overview

Class methods

Instance Method Summary collapse

Instance Method Details

#find_obscured(obscured_id) ⇒ ActiveRecord::Base?

Finds a record by its obscured ID.

This method decodes the given obscured ID to extract the original record ID, then searches for the record using the decoded ID.

Examples:

user = User.find_obscured('g4ztomi') # => <User:0x0000000165a73210 id: 7371, ...>
# Returns the user with ID 7371 corresponding to the decoded value of "g4ztomi"

Parameters:

  • obscured_id (String) —

    The obscured ID that represents the original record ID.

Returns:

  • (ActiveRecord::Base, nil) —

    Returns the record if found, otherwise returns nil.



27
28
29
# File 'lib/activerecord-obscuredid.rb', line 27

def find_obscured(obscured_id)
  find_by(id: decode_obscured_id(obscured_id))
end

#find_obscured!(obscured_id) ⇒ Object

Same as #find_obscured but will raise ActiveRecord::RecordNotFound exception if the decoded id can't find a record.



33
34
35
# File 'lib/activerecord-obscuredid.rb', line 33

def find_obscured!(obscured_id)
  find(decode_obscured_id(obscured_id))
end