ECのウェブ担当者のメモ

ECサイトを運営管理している、WEB担当プログラマのメモ

スポンサーリンク

ActionView::MissingTemplateの対策

f:id:jun9632:20170208181346p:plain

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'

関連記事

marketing-web.hatenablog.com

marketing-web.hatenablog.com

Ruby on Rails 5 超入門

Ruby on Rails 5 超入門