Rails でパンくずリストを作成するには、gem gretel を使うのが便利です。SEOの内部対策に欠かせないパンくずリストをRailsで実現するメモです。
まずはGemの選定
調べてみるとRuby on Railsでパンくずリストを実現するには以下の2つのGemを使うのが主流っぽい
breadcrumbs_on_rails
gretel
breadcrumbs_on_rails
だとコントローラが汚れてしまうとのこと
gretelの使い方
https://github.com/lassebunk/grete://github.com/lassebunk/gretel
まずはおなじみのgem追加してbundle install
を叩く
gem 'gretel'
以下のコマンドを叩くと、config/breadcrumbs.rb
に設定ファイルが生成される
$ rails generate gretel:install
以下のように設定していく
# Root crumb
crumb :root do
link "Home", root_path
end
# Issue list
crumb :issues do
link "All issues", issues_path
end
# Issue
crumb :issue do |issue|
link issue.title, issue
parent :issues
end
設定したパンくずをViewで呼び出す
application.html.erb
に以下を追記
!!!
%html
%head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}
%meta{:charset => "utf-8"}
%meta{:name => "viewport", :content => "width=device-width, initial-scale=1.0"}
%meta{"http-equiv" => "x-ua-compatible", :content => "ie=edge"}
%title YourHomePageTitle
= csrf_meta_tags
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload'
= javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
%body
%header
= render 'layouts/header'
%main
= render 'layouts/alerts'
= breadcrumbs
.container
.row
.col-sm-3
= render 'layouts/sidebar'
.col-sm-9
= yield
%footer
= render 'layouts/footer'
ex) ルート画面
- breadcrumb :root
...