Rails パンくずリスト gretel の使い方
概要
こんにちは、今回はパンくずリストを作成する際に使ったgretelというgemの使い方を記載します。
インストール
gem 'gretel'
bundle installします。
ファイル作成
下記コマンドを打つと専用の設定ファイルが作成されます。
$ rails generate gretel:install
config/breadcrumbs.rbというファイルが作成されたはずです。
パンくずを作成
前項で作成された設定ファイルにパンくずを設定していきます。
crumb :top do
link "トップページ", root_path
end
crumb :shops do
link "カフェ一覧", shops_path
parent :top
end
crumb :user do |user|
link user.username, user_path(user)
parent :shops
end
crumb :edit_user do |user|
link "編集", edit_user_registration_path
parent :user, user
end
crumb :following_user do |user|
link "フォロー", following_user_path
parent :user, user
end
crumb :followers_user do |user|
link "フォロワー", followers_user_path
parent :user, user
end
crumb :shop do |shop|
link shop.name, shop_path
parent :shops
end
crumb :edit_shop do |shop|
link "編集", edit_shop_path
parent :shop, shop
end
今回は最大4階層までのパンくずを設定しました。
crumbでパンくずを定義し、linkにパスを記述します。
parentには親となるパンくずを設定。
parent :モデル名 と記述したあとに注目してください。
crumb :edit_shop do |shop|
link "編集", edit_shop_path
parent :shop, shop #ここに注目!
end
このカンマ以降の記述が無ければ対象のビューで
NoMethodErrorが出てしまいます。
この書き方がなかなか分かりませんでした。
viewに配置
view側はシンプルです。
<% breadcrumb :user, @user %>
<%= breadcrumbs separator: " › " %>
これだけです。
separatorでパンくずの階層である > を追加しています。
その他にも色々とオプションがあるのでぜひ公式で確認してみてください。
以上です。
お付き合い頂きありがとうございました。
Author And Source
この問題について(Rails パンくずリスト gretel の使い方), 我々は、より多くの情報をここで見つけました https://qiita.com/matsutech/items/af5850ddd0d820f12aca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .