ActionView::MissingTemplateの対策
ActionView::MissingTemplate
そうです。 Railsでviewでテンプレートが無いときに発生します。
基本的には、テンプレートを準備しなかったミスだとは思うんですが、
動的に部分テンプレートを見つけて描画したりするときなどは、 もしテンプレートがあれば、その部分テンプレートを描画。 テンプレートがなければ、何もしないでスキップするなんて、 処理をやりたいことがあると思います。
そんな時に便利なのが、
lookup_context.exists?
です。
使い方は
- if lookup_context.exists?(@shop_code, "shop", true) = render("shop/#{@shop_code}")
仮に、下記のような、テンプレートファイルがあったときに
views/shop/_shop_123.html.slim
@shop_codeが以下のような、テンプレートファイル名と一致すれば、そのテンプレートを描画してくれます。
@shop_code = 'shop_123'
下記のようにマッチしなければ、そのままスキップ
@shop_code = 'shop_456'
関連記事
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2016/12/17
- メディア: 単行本
- この商品を含むブログを見る