Template is missingの対応方法|Ruby on Railsでよく発生するエラー1

Ruby on Railsの独学をしている初心者の方がよく見るエラーのメッセージと対応方法を記載します。
Template is missing Missing template とは
controllerで設定しているアクションの、
viewが設定されていない場合に発生するエラーです。
Ruby on Railsはcontrollerのアクション名とviewのページ名が同名称になる事が基本で、controllerのアクションとviewのページ名に差異がある場合はcontrollerで明示的に記載する必要があります。
例えばBlogsのcontrollerがあり、new.html.erbが設定されていない状態で
class BlogsController < ApplicationController #アクションが設定済みだがページは設定していない de new @Bloge = Blog.new end end
以下へアクセスしようとした場合
http://localhost:3000/blogs/new
ページを設定していない場合は下記のようなエラーが発生します。
Missing template blogs/new, application/new with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}
初心者の場合は中々気づけないエラーですが、controllerのアクション名とviewのページ名が同名称になる事を押さえれば回避することができるようになります。
なおRuby on Rails5では以下のメッセージが表示されます
ActionController::UnknownFormat in 名前Controller#アクション
例えば ArticlesControllerでindexアクションに対応するviewファイルが存在しない場合は以下のエラーが発生します。
ActionController::UnknownFormat in ArticlesController#index ArticlesController#index is missing a template for this request format and variant. request.formats: ["text/html"] request.
この場合もArticlesのindex.html.erbを作成すれば可動します。
NoMethodError というエラー
メソッドがないというエラー 注意点として、表示されているメソッドがエラーではなく そもそも前段のインスタンス変数が未設定だったら値がnilの場合があったりする。
例 article_controller
def show @article = Article.find(params[:id]) end
show.html.slim
div==@article.publish_time.strftime('%Y-%m-%d') h1 = @articles.title #23行目
エラーの内容
NoMethodError in Articles#show articles/show.html.slim where line #23 raised: undefined method `title' for nil:NilClass
このエラーの内容はshow.html.slim の23行目のtitleがないというエラー。 注目するべきはtitleではなくインスタンス変数の@articlesです。
よく見るとcontrollerのインスタンス変数は@articleと単数形になっているので、@articlesの変数の値は何も設定されていないためtitleがnilになりエラーになる。
その為 show.html.slim の@articles.titleを@article.titleへ変更すればエラーが解消されます
その他関連記事
未経験からエンジニアになった人間が解説|独学プログラミングで挫折しないよう心がける事
独学プログラミングの勉強手順|未経験からエンジニアになった人間が解説
未経験からエンジニアになった人間が考える、今からエンジニアに就職する方法
【初心者・独学者向け】プログラミングに困ったらテラテイルで質問してみよう
ちゃんと知ってる? フリーランスエンジニアと契約・報酬形態について
Ruby on Rails Python等各プログラミング言語のエラーと対応方法一覧
Ruby on Railsのデバッグツール byebugの紹介