module Slug extend ActiveSupport::Concern included do field :uid, type: String index({ uid: 1}, { unique: true }) validates_uniqueness_of :uid before_create :generate_uid end def to_param (self.slug_title.gsub(/[ "'*@#$%^&()+=;:.,?>|\\<~_!:,、。!?;「」〈〉【】/]/,'-')+"-"+self.uid).gsub(/-{2,}/,'-') rescue "-"+self.uid end private def generate_uid self.uid = rand(10**8).to_s generate_uid if self.class.where(:uid=>self.uid).size > 0 end end