LoginSignup
5

More than 1 year has passed since last update.

NoMethodError in ~#index (エラーの確認・対処)

Posted at

はじめに

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| %>このように変更し、エラー解消となりました。
エラー文をよく読んで理解することの大切さを日々感じております。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5