【未完】パンくずについて(rails)(プログラミング)
サイトで
みたいな右上とかにバーのように現在の位置示してくれるやつ。多分これがパンくず。わからんこと調べてみるよ〜!
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で定義した名前で記載