Template is missing エラー
あるあるエラーメッセージ集
というエラーメッセージが表示されたら、コントローラのメソッドの名前のviewファイルが、見つからないのかな、ということを疑いましょう。
例えば、HonyararaController というコントローラクラスが、hyonyarara_controller.rb ファイルとして app/controllers の下に置いてあったとして、そのファイルの内容に
という index メソッドが含まれていて、app/views/honyarara ディレクトリの中に index.rhtml がないと、Template is missing エラーが表示されます。
コントローラのメソッド名のビューファイルがない、っていうわけでござーます。
ただし、コントローラのメソッドの中でリダイレクトしている場合は、ビューファイルがなくてもエラーになりません。
例えば、
とリダイレクトされていれば、app/views/honyarara ディレクトリの中に index.rhtml がなくてもエラーがでません。なぜなら index2 にリダイレクトするからです。
この場合 def index2 ~ end の中でリダイレクトをしていなくて、app/views/honyarara ディレクトリの中に index2.rhtml がないと、やっぱり、Template is missing エラーが表示されます。
ではチャオチャオっとチャオっちゃお!バイバーイ!
【広告】
Template is missing
Missing template xxx_yyy.rhtml
というエラーメッセージが表示されたら、コントローラのメソッドの名前のviewファイルが、見つからないのかな、ということを疑いましょう。
例えば、HonyararaController というコントローラクラスが、hyonyarara_controller.rb ファイルとして app/controllers の下に置いてあったとして、そのファイルの内容に
def index
@name = 'oppappi'
end
という index メソッドが含まれていて、app/views/honyarara ディレクトリの中に index.rhtml がないと、Template is missing エラーが表示されます。
コントローラのメソッド名のビューファイルがない、っていうわけでござーます。
ただし、コントローラのメソッドの中でリダイレクトしている場合は、ビューファイルがなくてもエラーになりません。
例えば、
def index
@name = 'oppappi'
redirect_to :action => :index2
end
とリダイレクトされていれば、app/views/honyarara ディレクトリの中に index.rhtml がなくてもエラーがでません。なぜなら index2 にリダイレクトするからです。
この場合 def index2 ~ end の中でリダイレクトをしていなくて、app/views/honyarara ディレクトリの中に index2.rhtml がないと、やっぱり、Template is missing エラーが表示されます。
ではチャオチャオっとチャオっちゃお!バイバーイ!
【広告】
COMMENT
うーん 色んな原因が考えられます by 自分
自分の経験からすると、以下のような原因がよくあると思います
1.実は正しい場所と思っていた場所は正しくなかった
2.ビューファイル名が正しくなかった
3.ビューファイル名が大文字小文字だった
4.ビューファイル名が全角だった
5.コントロールにメソッド(def)を定義していなかった
6.routes.rb で特殊なURLマッピングを定義していた
開発がんばってくださいねー。
1.実は正しい場所と思っていた場所は正しくなかった
2.ビューファイル名が正しくなかった
3.ビューファイル名が大文字小文字だった
4.ビューファイル名が全角だった
5.コントロールにメソッド(def)を定義していなかった
6.routes.rb で特殊なURLマッピングを定義していた
開発がんばってくださいねー。
認識されないのかないことになっています。
どうしたらよいと思いますか?