Breadcrumbs is a simple plugin that adds a
breadcrumbs object to controllers
gem install breadcrumbs. Or add
gem "breadcrumbs" to your Gemfile.
On your controller (optional):
class ApplicationController < ActionController::Base before_action :add_initial_breadcrumbs private def add_initial_breadcrumbs breadcrumbs.add "Home", root_path end end class ThingsController < ApplicationController def index breadcrumbs.add "Things", things_path end end
You don't need to provide an URL; in that case, a span will be generated instead of a link:
breadcrumbs.add "Some page"
You can set additional HTML attributes if you need to:
breadcrumbs.add "Home", root_path, id: "home", title: "Go to the home page"
On your view (possibly application.html.erb):
<%= breadcrumbs.render %>
You can render as ordered list.
<%= breadcrumbs.render(format: :ordered_list) %>
You can render as inline links.
<%= breadcrumbs.render(format: :inline) %>
You can set your own separator:
<p> You are here: <%= breadcrumbs.render(format: :inline, separator: "|") %> </p>
You can also define your own formatter. Just create a class that implements a
render instance method and you're good to go.
class Breadcrumbs::Render::Dl def render # return breadcrumbs wrapped in a <dl> tag end end
To use your new format, just provide the
Breadcrumbs is integrated with I18n. You can set translations like:
en: breadcrumbs: home: "Home"
And then you just call
In fact, you can provide any scope you want.
If you don't want to translate a label, just pass the option
breadcrumbs.add :home, nil, i18n: false
For more details about how to contribute, please read https://github.com/fnando/breadcrumbs/blob/main/CONTRIBUTING.md.
The gem is available as open source under the terms of the MIT License. A copy of the license can be found at https://github.com/fnando/breadcrumbs/blob/main/LICENSE.md.
Code of Conduct
Everyone interacting in the breadcrumbs project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.