しおブログ言うてますけど

技術ブログ言うてますけど技術以外のことも発信すると思われ。RubyとかRuby on Railsとか生き方とかジャンルにこだわらず自分の好きなように。初心者なのでお手柔らかに。

Gem gretelを使ってパンくずを設定する方法

こんにちは。塩濱です。
今回はgretelというGemを使ってパンくずを設定する方法についてまとめていきたいと思います。
パンくずとはこんな感じで自分が今どのページにいるかわかるというものです。(間違ってたら修正します)

https://i.gyazo.com/727a8adbf183c706dd6a91abb5b56dc9.png

前提

今回使用するgreteというGemをインストールし、使えるるようになっていること。

使用方法

$ rails generate gretel:install

rails g コマンドを使用してgretel:installするとbreadcrumb.rbというファイルが作成されます。 このファイルにパンくずの設定を書いていきます。

# config/breadcrumb.rb

# 記法
crumb crumsの名前を指定 do
  link '表示させたい文字', その文字のリンク先
  parent 親の指定
end

基本的な記法はこのようになります。

crumb :admin_tags do
  link 'タグ', admin_tags_path
  parent :admin_dashboard
end

crumb :edit_admin_tag do |tag|
  link 'タグ編集', edit_admin_tag_path(tag)
  parent :admin_tags
end

crumb :new_admin_article do
  link '記事作成', new_admin_article_path
  parent :admin_articles
end

idが必要になるURLにはブロックでローカル変数を渡すことでidが渡されます。

viewの設定

ここまでできたらあとは、viewで記述するだけです。

<% breadcrumb :admin_users %>

先程 breadcrumb.rbで設定したcrumbの名前をつけることによってパンくずが設定されます。 また、crumb :edit_admin_tagのようにローカル変数を渡しているものはview側でも変数を渡さなければいけません。

<% breadcrumb :edit_admin_tag, @tag %>

変数を渡すことで、エラーが出ずにパンくずが設定できているかと思います。

まとめ

パンくずはWEBサイト、WEBアプリケーションなどでよく使われるものだと思うので、しっかり理解していきたいと思いました。