Crummy is a simple and tasty way to add breadcrumbs to your Rails applications.
The gem is hosted on gemcutter, so if you haven’t already, add it as a gem source:
gem sources -a http://gemcutter.org/
Then install the Crummy gem:
gem install crummy
Simply add gem dependency to your Gemfile:
gem "crummy", ">= 1.0.1"
In your controllers you may add_crumb either like a before_filter or within a method (It is also available to views).
class ApplicationController
add_crumb "Home", '/'
end
class BusinessController < ApplicationController
add_crumb("Businesses") { |instance| instance.send :businesses_path }
add_crumb("Comments", :only => "comments") { |instance| instance.send :businesses_comments_path }
before_filter :load_comment, :only => "show"
add_crumb :comment, :only => "show"
def show
add_crumb @business.display_name, @business
end
def load_comment
@comment = Comment.find(params[:id])
end
end
Then in your view:
<%= render_crumbs %>
render_crumbs renders the list of crumbs as either html or xml
It takes 3 options
The output format. Can either be :xml or :html. Defaults to :html
:format => (:html|:xml)
The separator text. It does not assume you want spaces on either side so you must specify. Defaults to »
for :html and <crumb>
for :xml
:separator => string
Render links in the output. Defaults to true
:links => boolean
render_crumbs #=> <a href="/">Home</a> » <a href="/businesses">Businesses</a>
render_crumbs :separator => ' | ' #=> <a href="/">Home</a> | <a href="/businesses">Businesses</a>
render_crumbs :format => :xml #=> <crumb href="/">Home</crumb><crumb href="/businesses">Businesses</crumb>
A crumb with a nil link will just output plain text.
The variable set is set to @_crumbs as to not conflict with your code.
- Port over rspecs from project to plugin (Fully tested in a project)
- Accept instances of models as a single argument
- Allow for variables in names. (The workaround is to do your own before_filter for that currently)
- Zach Inglis of London Made
- Rein Henrichs
- Les Hill
- Sandro Turriate
- Przemysław Kowalczyk – feature ideas
- Sharad Jain
- Max Riveiro
- Kamil K. Lemański
- Brian Cobb
Copyright © 2011 Zach Inglis, released under the MIT license