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

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

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

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

Q&A

解決済

2回答

619閲覧

Railsで投稿にコメントされた時にコメントした人の名前を出したい

umigame_Rails

総合スコア66

Ruby on Rails

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

0グッド

1クリップ

投稿2022/06/21 06:38

編集2022/06/23 04:09

こんにちは
今Railsで簡単なSNSアプリを作っているんですがご教授願いたいことがあります
Deviseでログイン機能を持たせて会員者のみ投稿、コメント可
投稿にはDeviseユーザーのIDを引っ張って来ることがこのような形で出来ました
投稿のコントローラー

Ruby

1def create 2 @tweet = Tweet.new(tweet_params) 3 @tweet.user_id = current_user.id 4 if @tweet.save 5 redirect_to tweet_path(@tweet) 6 else 7 render :new 8 end 9end

ですがそのTweetに紐づけているコメントにコメントした人のDeviseのIDやユーザー名を取得する方法がわかりません
このように記述してみましたがエラーを見る限りIDはNilになります
コメントのコントローラー

Ruby

1def create 2 @tweet = Tweet.find(params[:tweet_id]) 3 @comment = Comment.new 4 @comment.user_id = current_user.id 5 @tweet.comments.create(comment_params) 6 redirect_to tweets_path(@tweet) 7end

コメントのView

HTML

1<%= link_to user_path(@tweet.user_id) do %> 2 <%= @tweet.user.username %> 3<% end %>

@tweet.comments = などに変えてみたのですが結果は変わらずNilでした
どうすればコメントした人のDeviseで登録したIDやユーザー名を表示させることができるのでしょうか
必要なファイルを言っていただければ提示いたします

追記
Userモデル

Ruby

1class User < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 devise :database_authenticatable, :registerable, 5 :recoverable, :rememberable, :validatable 6 7 mount_uploader :avatar, AvatarUploader 8 has_many :tweets, dependent: :destroy 9 has_many :comments, dependent: :destroy 10end 11

Tweetモデル

Ruby

1class Tweet < ApplicationRecord 2 mount_uploader :image, ImageUploader 3 belongs_to :user 4 has_many :comments, dependent: :destroy 5 6 7 validates :title, presence: true 8 9 validates :body, presence: true 10 11 12end 13

Commentモデル

Ruby

1class Comment < ApplicationRecord 2 mount_uploader :image, ImageUploader 3 belongs_to :tweet 4 belongs_to :user 5end 6

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

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

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

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

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

shinoharat

2022/06/23 03:58

User, Tweet, Comment モデルのコードをそれぞれ質問文に追加してください。
umigame_Rails

2022/06/23 04:09

追記しました ありがとうございます
guest

回答2

0

ベストアンサー

ツイートへのコメントのユーザー名を表示するのであればこうじゃないですかね

ruby

1<%= @tweet.comments.each do |comment| %> 2 <%= link_to user_path(comment.user_id) do %> 3 <%= comment.user.username %> 4 <% end %> 5<% end %>

投稿2022/06/23 15:02

ohoh5454

総合スコア92

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

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

umigame_Rails

2022/06/25 12:38

ありがとうございます ちょっと忙しくてまだ試せてませんので後日また報告させていただきます
guest

0

試してみたらうまくいきました、Drift Boss ありがとう

投稿2023/11/08 01:37

Mike23

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問