dm-slug
Manages your permalinks so you don't have to.
Internally, makes use of DataMapper::Types::Slug
, although I'm not terribly
excited about its implementation at the moment. (After you save a model, you
have to reload it to be able to see a proper value for the slug field.)
To use, add the following to your model:
has_slug # uses defaults of :on => name, :called => :slug
or
has_slug :on => title, :called => permalink
You can add a :length
option as well, though if you place your has_slug
anywhere below the property given in :on
, it will pick up the length of that
field and use that instead. It will also add a unique_index
option if the
original field has unique_index
set to true, or if it's a key.
As shown above, if your field to create a slug on is called :name
or if you
don't mind your slug field being called slug
, then you can leave that
corresponding option out, as those are the defaults. If you'd like something
different, as in the second example, you can specify them and they'll get used
instead of the defaults.
Let me know if there's anything additional you'd like to see here.