Skip to content

Instantly share code, notes, and snippets.

@robertomiranda
Last active September 25, 2015 12:49
Show Gist options
  • Save robertomiranda/b17f9f479d34cfcd737f to your computer and use it in GitHub Desktop.
Save robertomiranda/b17f9f479d34cfcd737f to your computer and use it in GitHub Desktop.
module SequenceId
extend ActiveSupport::Concern
module ClassMethods
def has_sequence_id(column: "hex_id", sufix: "DBA", rjust_lenght: 3)
after_create do
number = self.id.to_s(16).rjust(rjust_lenght, "0")
self.send("#{column}=", "#{sufix}_#{number}")
self.save
end
end
end
end
class User < ActiveRecord::Base
has_sequence_id
end
user = User.create
user.hex_id #=> "DBA_0c8"
class UsersController < ActionController::Base
def show
@user = User.find_by_hex_id(params[:id])
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment