質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

871閲覧

Railsの関連付けのviewについて

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2018/01/27 06:23

いつもお世話になっています。
早速、本題に入ります。

今回の実装では、以下の3つの関連付けをしており、

User has_many Article
User has_many Comment
Article has_many Comment

User→Article→Comment
User→Comment

articles/show.html.erbの所で、記事のコメントを投稿できるようにしています。

そして、articles/show.html.erbには、以下の様にコードを書いています。

<h3>コメント:</h3>//コメントを表示する部分 <% @article.comments.each do |comment| %> <div class="kaiwa"> <figure class="kaiwa-img-left"> <% if comment.user.avatar.url.present? %> <%= image_tag comment.user.avatar_url(:thumb) %> <% end %> <figcaption class="kaiwa-img-description"> <%= comment.user.username %> </figcaption> </figure> <div class="kaiwa-text-right"> <p class="kaiwa-text"> <%= comment.body %> </p> </div> </div> <% end %>//コメントを表示する部分ここまで <h3>作者にコメントを残す</h3> //コメントを投稿する部分 <%= form_for [@article, @article.comments.build] do |f| %> <p><%= f.text_area :body,class:'commentbox' %></p> <%= f.submit 'コメントを投稿する' %> <% end %> </div>

しかし、上記のコードの、コメントを投稿する部分をコメントを表示する部分よりも先に書くと、「undefined method 'avatar' nil class'というエラーになってしまいます。

エラーの該当部分の<%= image_tag comment.user.avatar_url(:thumb) %>を削除して試しても、今度は <%= comment.user.username %>の部分で同じようなエラーが発生します。

(avatarとusernameは、Userのカラム名です)

このようなエラーになる原因や解決策には、どのような事が考えられるでしょうか?

長文になってしまいましたが、よろしくお願致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

再起動したらできました。

原因はさっぱり不明ですが、何かしらの勘違いを起こしていた可能性があります。

投稿2018/01/27 07:52

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問