かずきの日記

エンジニア・起業・人生の日記

Ruby on Rails パンくず機能 かなりわかりやすく説明

どうもかずきです!

 

今回はRuby on Rails パンくず機能 かなりわかりやすく説明というテーマで行ってみましょう!

 

 「フリー写真 ウェブ」の画像検索結果

 

パンくずとは?????

 

サイトを訪れたユーザが今どこにいるかを視覚的にわかりやすくした誘導表示

 

↑写真は私がTECH::EXPERTの最終課題であるメルカリのコピーサイトで実装したものです

 

 

 

〜実装方法〜

 

①Gemfileに gem “gretel” を記入後、bundle install でインストール

Gemfile


gem "gretel"

 

 

ターミナル


$ bundle install

 

②$ rails g gretel:install コマンドによって自動的にconfig/breadcrumbs.rbが作成される

ターミナル


$ rails g gretel:install

 

 

③config/breadcrumbs.rbのファイル内を見る

config/breadcrumbs.rb


crumb :root do
 link "Home", root_path
end

# crumb :projects do
#   link "Projects", projects_path
# end

# crumb :project do |project|
#   link project.name, project_path(project)
#   parent :projects
# end

以下略。。。

 

のような記述がデフォルトで書いてあることを確認

 

 

 

基本形の記述の意味は以下↓

 

config/breadcrumbs.rb


crumb :ページ名(任意で決められる) do

 

  link “実際に表示されるときの記述”, パス名

 

  parent :ひとつ前のページ名(先頭ページであればこの行は書かない)

 

end

※基本的にrootページ(最初に開くページ)から記載していく

 

④パンくずのレイアウトファイルを作って部分テンプレにする

シンプルなものであれば以下のようなクラス構造がオススメ (クラス名はお好み)




(例)hamlファイルでFont Awsomeのアイコンなどを入れたい場合

separatorとは区切っている境目のこと

 

_hogehoge.html.haml


.hoge
  ul.hogehoge
  li.hogehogehoge
     = breadcrumbs separator:  #{fa_icon ‘hoge-hoge’}, class:”fuga”

 

画像やその他文字列も可能



その後、cssで肉付け



該当するページに部分テンプレする時は

 

部分テンプレ先のビューファイル.html.haml


    -  breadcrumb :該当するページ名
    = render “hogehoge(ディレクトリが違う時はフォルダ名/パンくずファイル名とする”)

 

⑤ちょっと応用

変数名で表示させたい時

 

(例)特定のユーザーニックネームでのページ表示など

 

特定のユーザ名を引数として持ってくる

 

config/breadcrumbs.rb


crumb :user do |user|

  link "@#{user.nickname}", user_path(user)

  parent :users

end

 

  

部分テンプレ先のビューファイル.html.haml


 - breadcrumb :user,@user
 = render “hogehoge(ディレクトリが違う時はフォルダ名/パンくずファイル名とする”)

 

これだけわかれば問題なさそう

 

 

最後にお得な情報です

 

プログラミングスクールに通いたいと思っている方へ!

〜TECH::EXPERTお得な情報 受講料最大2万円OFF!!〜

  1. 紹介者欄に『奥田和記』と記入→受講料1万円OFF
  2. 上記に加えて無料カウンセリング参加→さらに受講料1万円OFF

この他に割引特典などももらえることがあります!

 

それでは!