Deze keer zal ik een helper laten zien waarmee je lekker simpel breadcrumbs kan toevoegen aan je website. Je geeft aan waar de breadcrumbs naartoe moeten gaan, wat voor ’seperator’ er moet worden gebruikt en of het einde van de breadcrumbs is bereikt. Eerst de breadcrumbs helper die een blok om alle kruimels plaatst.

def breadcrumbs(html_tag, *args, &block)
	  options = args.extract_options!
	  options[:class] ||= "breadcrumbs"
	  content_for(:breadcrumbs) do
		  content_tag(html_tag, options, &block)
	  end
end

Je stopt dus in yield(:breadcrumbs) een html tag die je meegeeft en geeft een block mee. Hierin stop je dan alle individuele kruimels. Hier is ook een helper voor: crumb.

def crumb(label, options={})
    options[:seperator] ||= "»"
    options[:seperator] = "" if options[:end]
    options[:url].blank? ? "#{label} #{options[:seperator]}" : "#{link_to(label, options[:url], :title => label)} #{options[:seperator]}"
end

Je kunt hier naast een label een :url, :seperator en :end meegeven. Er is een standaard :seperator, maar als je hebt aangegeven dat dit het einde is van de breadcrumb zal deze niet worden getoond. Hier een voorbeeld hoe je de helper kunt gebruiken.

<% breadcrumbs :p do %>
    <%= crumb "posts", :url => "/posts" %>
    <%= crumb "archive", :url => "/posts/archive" %>
    <%= crumb "hello world!", :end => true %>
<% end %>

Er wordt een p-tag aangemaakt met hierin twee links, twee seperators en één gewone tekst. Het resultaat ziet er als volgt uit.

<p class="breadcrumbs">
    <a href="/posts" title="posts">posts</a> »
    <a href="/posts/archive" title="archive">archive</a> »
    hello world
</p>

Als je zou willen kun je de helper geheel naar je eigen wensen aanpassen. Veel plezier ermee!