0.01
No commit activity in last 3 years
No release in over 3 years
Store ActiveRecord IDs non-obviously in URL using hashids.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

Runtime

~> 4.2.1
 Project Readme

hashids_rails gem¶ ↑

<img src=“https://badges.gitter.im/Join%20Chat.svg” alt=“Join the chat at https://gitter.im/brianpetro/hashids_rails”>

Uses hashids.rb(github.com/peterhellberg/hashids.rb) to store ActiveRecord IDs in URL non-obviously. Heavily based on obfuscate_id(github.com/namick/obfuscate_id).

Installation¶ ↑

Add the gem to your Gemfile.

gem 'hashids_rails'

Run bundler.

bundle install

Usage¶ ↑

In your model, add a single line.

class Post < ActiveRecord::Base
  hash_id
end

Customization¶ ↑

If you want your hash ids to be different than some other website using the same plugin, you can throw a random string (salt) at hash_id to make it hash out unique ids for your app.

class Post < ActiveRecord::Base
  hash_id salt: 'bring_your_own_salt'
end

Limitations¶ ↑

  • This is not security. hashids_rails was created to lightly mask record id numbers for the casual user. If you need to really secure your database ids (hint, you probably don’t), you need to use real encryption like AES.

  • To properly generate obfuscated urls(using hash_ids), make sure you trigger the model’s to_param method by passing in the whole object rather than just the id; do this: post_path(@post) not this: post_path(@post.id).

Contributing¶ ↑

TODO¶ ↑

  • write tests