Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Breadcrumbs for Rails with special sauce.
Ruby
branch: master

This branch is 22 commits ahead of gregbell:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
.gitignore
MIT-LICENSE
README.rdoc
Rakefile
init.rb

README.rdoc

Simplified Breadcrumbs

A nice way to add breadcrumbs to your application. Antonio Cangiano posted a link in the Ruby on Rails weblog to a post which talked about adding breadcrumbs to your Rails application. I've been doing this with helpers, but as the post says this is “Easy and flexible”. So I've created the plugin.

Changes

Changed breadcrumb method to accept 4 options: :tag, :class, :separator, and :no_link.

  • :tag - An HTML tag to wrap each breadcrumb entry with (ie. li, p, etc.).

  • :class - An HTML class to give to the tag specified in the :wrap_with_tag option.

  • :separator - Acts the same as the old breadcrumb method worked.

  • :no_link - Specify which breadcrumb is does not have a link. Default is to leave the current page unlinked. Set :no_link => "last" to leave the last breadcrumb unlinked instead.

Example

##
# app/controllers/application.rb
#
class ApplicationController < ActionController::Base

  add_breadcrumb 'Home', :root_path

end

##
# app/controllers/things_controller.rb
#
class ThingsController < ApplicationController

  add_breadcrumb 'Things', :things_path
  add_breadcrumb 'Create a new thing', '', :only => [:new, :create]
  add_breadcrumb 'Edit a thing', '', :only => [:edit, :update]

  def show
    @thing = Thing.find(params[:id])
    add_breadcrumb @thing.name, thing_path(@thing)
  end

end

##
# app/views/layouts/application.html.erb
#
<%= breadcrumb %>
<%= breadcrumb(:separator => '=>') %>
<%= breadcrumb(:tag => 'li') %>
<%= breadcrumb(:no_link => 'last' %>

Acknowledgments

Copyright © 2008-2009 Francesc Esplugas, released under the MIT license

Something went wrong with that request. Please try again.