レイアウトを適用している静的ページにパンくずを動的に表示させる

http://ubichupas.blogspot.jp/2011/07/rails3.html

そもそも静的ページを表示するには、controller、テンプレート、routeを以下のように作成・修正します

app/controllers/pages_controller.rbを作成
class PagesController < ApplicationController
  layout 'application'
  # app/view/pages/*.html.erbだけ作る。
end

↑メソッドは定義しなくてよい

routes.rb編集
 get "/page/:action" => "pages#:action"
テンプレート作成

app/view/pages/conmpany.html

<h1>こんにちわ!こんにちわ!</h1>

この静的ページにぱんくずを表示したい

でもべた書きは避けたい。

ぱんくずの表示にgemを使う

# Gemfile
gem 'crummy'

使い方

controllerで以下のように書いて

add_crumb "名前", "URL"

テンプレートで

<%= render_crumbs   %>

と書けばぱんくずが表示される。
お手軽。

本題。
controllerにぱんくずに書きたいページ名とパス名のハッシュを、initializeメソッドの中にべたっと書く。

controller

class PagesController < BaseController
  layout 'application'

  def initialize
    super
    @page_name = {"map"=>"サイトマップ", "hajimete"=>"はじめての方へ", "hurry"=>"お急ぎの方へ", 
"personal_data"=>"個人情報の取扱いについて", "company"=>"会社>概要", "promotion"=>"広告掲載について", 
"terms_of_service"=>"利用規約", "journalist"=>"メディアの方へ・取材のお問合せ", "form"=>"お問合せ", "links"=>"リンク集"}
  end 
end

layoutテンプレート

paramsが静的ページのcontrollerの時だけadd_crumbするようにする。

<% add_crumb @page_name["#{params[:action]}"] if params[:controller] == "pages" %>
<%= render_crumbs   %>

微妙。