module Skr::Concerns::RandomHashCode::ClassMethods
### Random Hash Code Concern This adds the {#has_random_hash_code} class method
Public Instance Methods
has_random_hash_code( field_name: :hash_code, length: 12 )
click to toggle source
A random string that identifies an entity, such as a Customer
, or Vendor
The code is generated by {Skr::Strings.random} for new records It's useful for generating magic links for access to an entity that cannot be guessed. @param field_name [Symbol] which field should the hash_code be stored in @param length [Integer] how long the hash_code should be
# File lib/skr/concerns/random_hash_code.rb, line 19 def has_random_hash_code( field_name: :hash_code, length: 12 ) validates field_name, :presence=>{ :message=>"hash code is not set (should be automatically chosen)" } scope :with_hash_code, lambda{ | code | where({ :hash_code=>code }) } before_validation(:on=>:create) do self[ field_name ] = Lanes::Strings.random( length ) if self[ field_name ].blank? end end