はじめに
Rails 6.0.3を使用してローカル環境にてアプリケーションを作成中にエラーに遭遇しました。本当に初歩的なミスですが、今後よく遭遇するであろうエラーとのことでしたので備忘録として記事にします。
環境
Ruby: 3.0.1
Rails: 6.0.3
設定内容
#controllerファイルの場所
frasse_app/app/controllers/frasses_controller.rb
#frasses_controller.rbのコード(抜粋)
def index
@frasses = Frasse.all
end
def new
@frasse = Frasse.new
end
#viewsファイルの場所
frappe_app/app/views/frasses/index.html.erb
#index.html.erbのコード(抜粋)
<% @frasse.each do |frasse| %>
<tr>
<td><%= frasse.content %></td>
</tr>
<% end %>
発生していた問題
一覧画面のindex.html.erbの表示を実装したいと思っていたのだが、localhostで接続すると下記のエラーとなってしまった。
NoMethodError in Frasses#index
undefined method `each` for nil:NilClass
とのエラー内容でした。
エラー文より@frasse
がnilになっているとのことがわかり変数の中身が何もない(nil)になっているようでした。
この部分 <% @frasse.each do |frasse| %>
わかったこと
投稿内容が代入されている変数は@frasses
複数形の方だったたということがわかり、 <% @frasses.each do |frasse| %>
このように変更し、エラー解消となりました。
エラー文をよく読んで理解することの大切さを日々感じております。