pretty_id
Add random, unique "pretty" ids to your ActiveRecord models.
Usage
1. Install the gem
gem 'pretty_id'2. Add a pretty_id column (and index!) to your model
add_column :books, :pretty_id, :string
add_index :books, :pretty_id3. Add has_pretty_id to your model
class Book < ActiveRecord::Base
has_pretty_id
endGeneration methods
:pretty (default)
chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
Array.new(options[:length]) { chars[rand(chars.length)] }.join:urlsafe_base64
SecureRandom.urlsafe_base64(options[:length] / 1.333)Options
class Book < ActiveRecord::Base
has_pretty_id method: :urlsafe_base64, # default: :pretty
column: :another_string_column, # default: :pretty_id
length: 12, # default: 8
uniq: false # default: true
endInstance methods
#regenerate_#{column_name}
user = User.create
user.pretty_id # => 'a0923sdf'
user.regenerate_pretty_id
user.pretty_id # => 'lf91fs9s'#regenerate_#{column_name}!
Same as above, but also calls save on the record