0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

undefined method `name' for nil:NilClassの解決策

Posted at

#はじめに#
はじめまして、プログラミング歴2ヶ月足らずの者です。同じエラーが発生した方のお力になれたらと思い、初めての投稿をさせていただきます。もし、記事内容に間違った内容などございましたらご指摘いただけると幸いです。

#背景#

productとその名前や値段などを表にして表示し、商品の管理画面を作成しようとしていました。

#エラー内容#

products.index.html.erb
 <% @products.each do |product| %>
            <tr>
                <td scope="row"><%= product.id %></td>
                <td><%= image_tag "/images/dummy.png", class: "img-fluid h-10" %></td>
                <td><%= product.name %></td>
                <td><%= product.price %></td>
                <td><%= product.category.name %></td>
                <td><%= product.category.major_category_name %></td>
                <td><%= link_to "編集", edit_dashboard_product_path(product), class: "dashboard-edit-link" %></td>
                <td><%= link_to "削除", dashboard_product_path(product), method: :delete, class: "dashboard-delete-link" %></td>
            </tr>
            <% end %>

7行目のproduct.category.nameのnameメソッドが見当たらないとのエラーメッセージが出ました。

#解決策#

rails db:reset

一度データベースの全てのテーブルをdropし、テーブルを再作成したところ、表が表示されるようになりました。

#考えられる原因#
開発途中で、試験的にデータベースのレコードを削除したりしていたので、productのレコードとcategoryのレコードの関係性が崩れたことが原因だったと考えられます。

↓ 参考記事

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?