Skip to content

UpbeatProductions/slugger

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Slugger

Slugger is yet another slug generator. It makes pretty urls for Active Record models. Why would the ruby (on rails) community need another slug generating plugin you ask? It doesn’t, but I needed one that would jump through some hoops to make sure slugs are unique without setting errors.

Installation

It’s a gem. Either run ‘gem install slugger` at the command line, or add `gem ’slugger’‘ to your Gemfile.

Usage

has_slug :source_column, [options_hash]

The default source column is title and slug column is, well slug. The following two settings are the same:

has_slug
has_slug :title, :slug_column => 'slug'

:source_column can also be an array, for example, if you wanted to create slugs for an Author model on first and last name:

class Author << ActiveRecord::Base
  has_slug [:first_name, :last_name]
end

To be sure that the slug will never have a validation error:

class Post << ActiveRecord::Base
  has_slug :title, :on_conflict => :concat_random_chars
end

Say you have an Episode model that belongs to TVSeries. Every episode will have a pilot, but you don’t want the unique validation to build silly looking urls: (this doesn’t actually work), patches welcome

class Episode << ActiveRecord::Base
  belongs_to :series

  has_slug :title, :scope => :series_id
end

Example

create_table "collections" do |t|
  t.string   "title"
  t.string   "slug"
end
add_index(:collections, :slug)

class Collection < ActiveRecord::Base
  has_slug
end

Collection.create(:title => 'Quick foxes jumping')
Collection.first.slug => 'quick-foxes-jumping'

About

Slugger is yet another slug generator.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Ruby 100.0%