Module: Controllers::ReferenceFindable
- Extended by:
- ActiveSupport::Concern
- Included in:
- CrmController
- Defined in:
- app/concerns/controllers/reference_findable.rb
Overview
Provides helper methods to find records by ID or reference number
Useful for show actions where users may paste a reference number instead of navigating by ID
Reference number patterns (matching QuickSearch):
- Order: SO123456 → reference_number column
- Quote: SQ123456 → reference_number column
- Invoice: IN123456 → reference_number column
- RMA: RMA123456 → rma_number column
- RoomConfiguration: RC123456 → reference_number column
- Opportunity: ON123456 → reference_number column
- Customer: CN123456 → ID (number after CN IS the ID)
Usage in controller:
include Controllers::ReferenceFindable
def show
@order = find_by_id_or_reference(Order, :reference_number)
@rma = find_by_id_or_reference(Rma, :rma_number)
@customer = find_by_id_or_reference(Customer) # Special handling for CN prefix
end
Constant Summary collapse
- ID_EMBEDDED_PATTERNS =
Reference patterns that extract ID from the reference (e.g., CN123456 → 123456)
{ 'Customer' => /\ACN(\d+)\z/i }.freeze