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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

Q&A

0回答

611閲覧

投稿したメッセージをビューに表示させられない

jm_swim

総合スコア8

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Ruby on Rails

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

バリデーション

Validationとは特定の入力データが、求められた条件に当てまっているかをチェックするために使われます。

0グッド

0クリップ

投稿2021/01/02 14:42

編集2021/01/03 02:52

前提・実現したいこと

現在メッセージ投稿アプリを作成しています。
ビューファイルでのエラーにつまづいています。アソシエーションを組んだ状態で変数を利用して投稿内容(投稿者、投稿日時、投稿メッセージ)を出力したいです。

rails初心者です。よろしくお願いいたします。

発生している問題・エラーメッセージ

NoMethodError in Comments#index Showing /Users/Desktop/debate-app/debate-app/app/views/comments/index.html.erb where line #32 raised: undefined method `coach' for #<Comment::ActiveRecord_Relation:0x00007fd52b07c058>
<div class="comment-user"> <!-- 投稿したユーザー名情報を出力する --> <%= @commented.coach.name %>  ←ここの行です。 </div> <div class="comment-date"> <!-- 投稿した時刻を出力する -->

コード

commentコントローラー エラー部分 def create @debate = Debate.find(params[:debate_id]) if coach_signed_in? @comment = @debate.comments.new(coach_comment_params) else user_signed_id? @comment = @debate.comments.new(user_comment_params) end if (@comment || @comments).save redirect_to debate_comments_path(@debate) else @comments = @debate.comments.includes(:coach) @comments = @debate.comments.includes(:user) render :index end end
commentモデル class Comment < ApplicationRecord belongs_to :debate belongs_to :user, optional: true belongs_to :coach, optional: true has_one_attached :image has_one_attached :video validates :content, presence: true validates :content, presence: true, unless: :was_attached? || :is_attached? def was_attached? self.image.attached? end def is_attached? self.video.attached? end mount_uploader :video, VideoUploader end
画像、動画投稿実装前のエラーが出ないビューの表示 <% if user_signed_in? %> <% @commented.all.each do |comment| %> <a href="#" id="name"><%= current_user.name %></a> <%= l comment.created_at %><br> <%= comment.content %><br> <% end %> <% else coach_signed_in? %> <% @commented.all.each do |comment| %> <a href="#" id="name"><%= current_coach.name %></a> <%= l comment.created_at %><br> <%= comment.content %><br> <% end %> <% end %>

投稿をeach文で取り出すとエラーが出ないためそれで行っていましたが、そのあとの実装する画像投稿や動画投稿の際にeach文のallが原因で違うエラーが出たため、each文を使わないもしくは、each文のallでエラーが出ない表示方法を実装したいと思ったためです。
改善方法がありましたら、教えていただきたく思います。

補足情報(FW/ツールのバージョンなど)

文章が拙く、申し訳ございません。
もし何か不足している、知りたいコードがありましたら、コメントをお願いします。

よろしくお願いいたします。

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

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

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

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

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

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問