レイアウトを適用している静的ページにパンくずを動的に表示させる
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 %>
微妙。