Small gem to create dynamic permalinks from an objects method
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

Make Permalink Build Status

make_permalink is a simple gem that allows you to easily create Permalinks (url-friendly-output) for methods in your objects. You don't need any database storage to make it work which is just awesome!


  class Post
    make_permalink :title

  p = Post.create(:title => "Hello World!")
  p.permalink   # => "1-hello-world"

If you're using Rails and you want your URLs to have the Permalink and not only the id, just override the to_param method to your model:

  class Post < ActiveRecord::Base
    make_permalink :title

    def to_param


To install make_permalink just add it to your Gemfile and run bundle install

gem 'make_permalink'


Non ascii characters

You can have a Permalink that won't change non-ascii.

:replace_non_ascii: If set to false non-ascii chars won't be replaced. Default is true

  class Post
    make_permalink :title, :replace_non_ascii => false

  p = Post.create(:title => "Let's rock & roll")
  p.permalink   # => "1-let-s-rock-roll"

Notice that if you don't replace non-ascii chars the gem will try to convert the symbols to workds.

  # You will get this with the default behavior 
  p.permalink  # => "1-lets-rock-and-roll"

Remove id from permalink

I don't really like to have the ID of the object on the Permalink, so I just added an option to remove it. Just call the method with :include_id => false and you're done! The problem with this is that querying would be much harder, since you don't have a permalink column in your database.

:include_id: is true by default but just change it to remove the id from the Permalink.


If you need to contact me about a bug or anythig, please open an issue.

Also, feel free to patch it as needed, every fix/refactoring/extension is more than welcome!

Nicolás Hock Isaza
@nhocki on Twitter

Copyright (c) 2012 Nicolás Hock Isaza, released under the MIT license