Mongoid::Urls

Gem Version Dependency Status Build Status Code Climate Coverage Status

Mongoid::Urls

Simple slugs for mongoid models! Set the fields you want to try to make an URL out of, when impossible, use your logic or set the url directly.

Nice URLs for Mongoid Documents

This library is a quick and simple way to generate URLs (slugs) for your Mongoid documents.

Mongoid::Urls can help turn this:

http://bestappever.com/video/4dcfbb3c6a4f1d4c4a000012

Into something like this:

http://bestappever.com/video/kittens-playing-with-puppies

Getting started

In your gemfile, add:

gem 'mongoid-urls'

In your Mongoid documents, just add include Mongoid::Urls and use the url method to setup, like so:

class Company
  include Mongoid::Document
  include Mongoid::Urls

  field :nickname
  field :fullname
  ...

  url :nickname, :fullname, ...
end

And that's it! There's some configuration options too - which are all listed below.

Finders

Mongoid::Urls will never override find!

Video.find_by_url("the-nice-url")

Or just:

Account.find_url("acc-123456")

Configuration

You may choose between two different systems for how your urls are stored:

Simple: #url String only.

Default to simple + #urls Array for history (find when page moved).

Reserved

Defaults to %w(new edit). Have in mind: It's an overwrite, not a merge.

Notes

If you're looking for conflict resolution, check out mongoid-slugs. This gem intended to be used for manual conflict resolution (duplicates): Use your own logic and/or return conflict error to the user.