CouchRest Model Slug <img src=“https://secure.travis-ci.org/lucasrenan/couchrest-model-slug.png?branch=master” alt=“Build Status” /> <img src=“https://gemnasium.com/lucasrenan/couchrest-model-slug.png” alt=“Dependency Status” />
CouchRest Model Slug is a simple gem to generate better urls using CouchRest Model in an easy way. It’s based on Mongoid Slug github.com/papercavalier/mongoid-slug
Time to relax with beautiful urls.
Getting Started
Add to Gemfile
gem "couchrest_model_slug", "~> 0.0.3"
A model example
class Post < CouchRest::Model::Base
include CouchRest::Model::Slug
property :title
property :summary
property :text
slug :title, :summary
end
It’s all you need to get things working =)
Querying
p = Post.create(:title => "CouchDB", :summary => "Time to relax!")
p.to_param # => "couchdb-time-to-relax"
Post.find("couchdb-time-to-relax") # =>#<Post slug: "couchdb-time-to-relax", title: "CouchDB"...
Special feature
CouchRest Model Slug was made to work with or without slugged value, then it uses the id to keep things running with no problems.
Post.create(:text => "post without slug") # => #<Post slug: "", title: nil, summary: nil, text: "post with no slug", _id: "9fdfdd090897680de59091c8c98ff064"...
Post.find("9fdfdd090897680de59091c8c98ff064") # => #<Post slug: "", title: nil, summary: nil, text: "post with no slug", _id: "9fdfdd090897680de59091c8c98ff064"...
Notes
CouchRest Model Slug automatically adds a property called slug into your model to store the slugged value. Then you can call the slug property directly.
p = Post.create(:title => "CouchDB", :summary => "Time to relax!")
p.slug # => "couchdb-time-to-relax"
If you want to be more explicit, you can query using find_by_slug magic method:
Post.find_by_slug("couchdb-time-to-relax") # =>#<Post slug: "couchdb-time-to-relax", title: "CouchDB"...