LoginSignup
3
0

More than 3 years have passed since last update.

gem gretelの使い方 ~パンくずリストを作ってみよう~

Last updated at Posted at 2021-01-22
gem 'gretel'

このgemを使って、パンくずリストを作っていこうと思います。

パンくずリストってなんぞや??

Image from Gyazo

ホームページのすみっこで見られる、ページの階層ですね。Webサイト内で、どの位置にいるのかがわかる機能です。

「ユーザー」を押すとユーザーページへ、「ホーム」を押すと最初のページへ飛ぶことができます。(ハンバーガーメニューとかパンくずリストとか、プログラミングの世界は、遊び心があって良いですよね。)

gem 'gretel'を使う

こちらのGithubのREADMEをご覧ください↓↓

[https://github.com/kzkn/gretel:embed:cite]

gem 'gretel'をbundle installしたあと、

$ rails generate gretel:install

こちらのgenerateコマンドを使って、config配下にbreadcrumb.rbというファイルが生成されます。

それではbreadcrumb.rbに作りたいパンくずリストの設定を記述していきます。

breadcrumb.rbにパンくずリストの設定を記述

Image from Gyazo

先ほどのリストを試しに作っていきます。

#breadcrumb.rb

crumb :dashboard do
  link ' Home', dashboard_path
end

crumb :users do
  link 'ユーザー', users_path
  parent :dashboard
end

crumb :user do |user|
  link 'プロフィール', user_path(user)
  parent :users
end

上記のような記述になります。書き方としては、

crumb :"シンボル名" do
  link 'パンクズに表示したい名前', URL
  parent :"一つ上の階層名"
end

このように当てはめていきます。parentは一つ上の階層がなければ(今回ならHome)記述しなくてOKです。

breadcrumb.rbの設定をこれで完了です。

viewファイルに記述していく

それぞれのviewファイルにbreadcrumbを記述していきます。

#Homeのviewファイル
<% breadcrumb :dashboard %>
#ユーザーのviewファイル
<% breadcrumb :users %>
#プロフィールのviewファイル
<% breadcrumb :users, @user %>

プロフィールのviewファイルで気をつけることは、

breadcrumb.rbにもあるように、プロフィールページはuser_path(user)というURLに飛ぶので、どのidのURLに飛んで欲しいのか(今回なら@user)を記述しないとエラーが出てしまいます。

あとはCSSなどで、ページの好きな位置にパンくずを表示すればOKです。とても簡単。。!

パンくずリストはヘッダーの下などに記述することが多いかと思いますので、部分テンプレートに分けておくのが便利かと思います。

gem gretelを使って、パンくずリストを作ってみよう

Image from Gyazo

一見むずかしそうな機能が、とても簡単に作れることが分かったと思います。

便利なgemを駆使しながら、より使いやすいRailsアプリケーションを作っていきましょう!

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0