Slugs
Minimalistic slugs inspired in friendly_id for rails.
Install
Put this line in your Gemfile:
gem 'slugs'
Then bundle:
$ bundle
Configuration
Add the slug column to the tables of the models you want to have slugs:
t.string :slug
Update your db:
rake db:migrate
NOTE: If you are using translatable_records you need to place the column in the translations table.
Usage
Use has_slug in your models to define what the slug will be:
If you want to use the value of one field:
has_slug :prop
To concatenate the value of multiple fields:
has_slug :prop1, :prop2, :prop3
If you need a very custom slug you can use a lambda, proc or block:
has_slug proc { |record| "#{record.prop}-custom" }
Then the find method of your models will accept slugs and ids transparently:
Model.find 'slug'
All the path and url helpers will start using the slug by default if you want to force the id:
model_path(instance.id)
Credits
This gem is maintained and funded by museways.
License
It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.