【未完】パンくずについて(rails)(プログラミング)

サイトで

Home > 掲示板 > 掲示板

みたいな右上とかにバーのように現在の位置示してくれるやつ。多分これがパンくず。わからんこと調べてみるよ〜!



viewでの表記方法?


例えばapp > views > admin > categories >index.html.slimで
パンくずが下のように設定されてた。

= content_for 'content-header' do
  | カテゴリー

- breadcrumb :admin_categories

・content_forで"content_header"にカテゴリーって文字列を表示している。

breadcrumbがパンくずリストを表示するためのメソッド。

他にももう一個下の階層のedit.html.slimとかでもこんな感じで記述されてた

= content_for 'content-header' do
  | カテゴリー編集

- breadcrumb :edit_admin_category, @category


admin_categoriesとかedit_admin_categoryってどこと繋がってるんやろうか〜?

→configにbreadcrumbs.rbが存在してた!!

breadcrumbs.rbについての深掘り


まず大元になるhomeに繋がってるパンくずの定義部分

crumb :admin_dashboard do
  link '<i class="fa fa-dashboard"></i> Home'.html_safe, admin_dashboard_path
end

・パンくずの最上位リスト部分の定義。
・admin_dashboard_pathはどこから?
 →controllers/admin/dashboards_controller.rb内の以下の記載で自動生成されるパス名から。

class Admin::DashboardsController < ApplicationController
  layout 'admin'

  def show; end
end


ではではカテゴリ部分はどんな感じで記載されてる??

crumb :admin_categories do
  link 'カテゴリー', admin_categories_path
  parent :admin_dashboard
end

crumb :edit_admin_category do |category|
  link 'カテゴリー編集', edit_admin_category_path(category)
  parent :admin_categories
end

・crumb :admin_categories doがさっきのadmin_categories部分に該当してる!!
・link `カテゴリー'で実際に表示される「カテゴリー」て日本語を指定。
・parent :admin_dashboardで親元になってるadmin_dashbordを指定。
 →ここで「Home > カテゴリー」っていう表示を実現してる感じか〜。

edit_admin_categoryの方はparentにadmin_categoriesを指定してる。これで「Home > カテゴリー > カテゴリー編集」っていうのを実現してる感じ!!


パンくずリストのために記載すること


・breadcrumbs.rbとかのパンくずの定義づけファイル
・各slimファイルにbreadcrumbsで定義した名前で記載