Project

slugger

0.01
No release in over 3 years
Low commit activity in last 3 years
Slugger is yet another slug generator.
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 2.0.0
~> 1.3.5

Runtime

>= 4.0.0
 Project Readme

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'