Created
February 28, 2012 17:38
-
-
Save riyad/1933884 to your computer and use it in GitHub Desktop.
How to make breadcrumbs_on_rails render a Bootstrap compatible breadcrumb navigation
Bootstrap 5
# The BootstrapBreadcrumbsBuilder is a Bootstrap compatible breadcrumb builder.
# It provides basic functionalities to render a breadcrumb navigation according to Bootstrap's conventions.
#
# You can use it with the :builder option on render_breadcrumbs:
# <%= render_breadcrumbs :builder => ::BootstrapBreadcrumbsBuilder %>
#
# Note: you can put this file into app/utils/bootstrap_breadcrumbs_builder.rb and it will autoload.
#
class BootstrapBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
def render
@context.content_tag(:nav, 'aria-label' => "breadcrumb") do
@context.content_tag(:ol, class: 'breadcrumb') do
@elements.collect do |element|
render_element(element)
end.join.html_safe
end
end
end
def render_element(element)
current = @context.current_page?(compute_path(element))
classes = ['breadcrumb-item']
classes.push('active') if current
@context.content_tag(:li, :class => classes.join(" ") ) do
link_or_text = @context.link_to_unless_current(compute_name(element), compute_path(element), element.options)
link_or_text
end
end
end
Thanks @sadjow!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Updated for Bootstrap 4 (alpha6): https://gist.github.com/SaladFork/270a4cb3ac20be9715b7117551c31ec7
Of note:
:separator
option (Bootstrap 4 accomplishes this with CSS):container_tag
option in addition to:tag
option (default to:ol
and:li
, respectively):show_empty
option which defaults tofalse
to prevent rendering when there are no crumbs (h/t @mrfoto's fork)