6
1

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.

[rails] 投稿一覧にユーザー情報を表示

Last updated at Posted at 2020-01-21

#始めに
今回、プロゲートと違う方法で投稿一覧でユーザー情報を表示します。

プロゲートでrailsを終えてからよく、ツイッター風アプリを作成すると思います。
そこで、プロゲートのコードをコピペすることは誰でも出来ますが、
重要なのは理解して自分でコードを書くことだと思います。

他のやり方で表示することが出来たので、参考やヒントになれば嬉しいです。

###完成イメージ
スクリーンショット 2020-01-21 17.00.44.png
※注:デザインは今回しません。また、分かりやすく理解してもらうためにユーザー情報は名前だけにします。

#前提
・usersテーブルと投稿用のテーブル(今回はcommentsテーブル)があること。

#MVC(model/controller/view)の設定
###controller設定

app/controllers/comments_controller.rb
class CommentsController < ApplicationController
    def index
      @comment = Comment.all.order(created_at: :desc)
    end

これはプロゲートでもでてきた投稿された順に上から表示しています。
###modelの設定(※ここからプロゲートと違う!)

app/models/comment.rb
class Comment < ApplicationRecord
    belongs_to :user#追記
end

belongs_toとはなんぞや?って思った方いるかも知れません。
簡単に説明すると、userテーブルと投稿用のテーブル(今回はcommentsテーブル)の2つを紐付けてくれる仕組みのものです。
詳細はこちら

###view設定

app/views/comments/index.html.erb
<% @comment.each do |comment|%>
  <%= comment.user.name%>
  <%= link_to(comment.content,"/comments/#{comment.id}")%>
<% end %>

上記のコードの2行目の <%= comment.user.name%>は
先程belongs_to :userと紐付けているためこのように書くことが出来ます。
もし、紐付けが出来ていなかったらエラーが出ると思います。

#最後に
今回、belongs_to を使ってuserテーブルとcommentテーブルをアソシエーションしました。

もし、何か修正点とかございましたらコメント等
恐縮ですが、宜しくおねがいします

6
1
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
6
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?