0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Rails パンくずリストの作成

Posted at

#はじめに
Railsアプリのヘッダー部分にパンくずリストを追加しました。忘れないように書き記します。

開発環境
ruby 2.6.5
Rails 6.0.3.4

#目次
1.Gemの導入
2.パンくずの設定
3.CSSの設定

#1.Gemの導入
gretelというGemを使用する。 下記Gemfileに追記後、ターミナルで忘れずにbundle installを実行する。

公式GitHub

Gemfile
gem "gretel"

#2.パンくずの設定
パンくずの設定を書き込むbreadcrumbs.rbファイルを作成する。作成方法は下記のようにターミナルでコマンドを実行する。

ターミナル
rails g gretel:install

今回下記のような4層でパンくずリストを構成する。
トップページ > 掃除提案 > 登録一覧 > 掃除箇所の登録

config/breadcrumbs.rb
crumb :root do
  link "トップページ", root_path
end

crumb :clean_suggestions do #ページの名前
  link "掃除提案", clean_suggestions_path #リンク名、リンク先ページ
  parent :root
end

crumb :suggestions do
  link "登録一覧", suggestions_path
  parent :clean_suggestions
end

crumb :new_suggestion do
  link "掃除箇所の登録", new_suggestion_path
  parent :suggestions
end

各ヘッダーのビューにパンくずリストを追記する。なお「separator: " > "」はリスト間に「>」を挿入する。これによりブラウザ上に表示される。

トップページのヘッダー.html.erb
<%= link_to "トップページ", root_path, class: :logo %>
<% breadcrumb :root %>
掃除提案のヘッダー.html.erb
<% breadcrumb :clean_suggestions  %>
<%= breadcrumbs separator: " > " , class: :logo %>
登録一覧のヘッダー.html.erb
<% breadcrumb :suggestions  %>
<%= breadcrumbs separator: " > " , class: :logo %>
掃除箇所の登録のヘッダー
<% breadcrumb :new_suggestion  %>
<%= breadcrumbs separator: " > " , class: :logo %>

#3.CSSの設定
logoクラスは「>」に適用される。現在のページを表す部分は自動的にcurrentクラスが割り当てられている。下記記述により、現在のページを太字とし、それ以外にカーソルを合わせると色が変わるようになる。

header.css
.logo {
  margin-left: 3vw;
}

.logo a {
  margin-right: 0.5vw;
}

.current {
  font-weight: bold;
  margin-right: 1vw;
}

.logo:hover,.logo a:hover {
  color: Chocolate;
}

4fe7bb811a01b4e77db7797b103d012f.gif

以上

0
3
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
0
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?