#始めに
今回、プロゲートと違う方法で投稿一覧でユーザー情報を表示します。
プロゲートでrailsを終えてからよく、ツイッター風アプリを作成すると思います。
そこで、プロゲートのコードをコピペすることは誰でも出来ますが、
重要なのは理解して自分でコードを書くことだと思います。
他のやり方で表示することが出来たので、参考やヒントになれば嬉しいです。
###完成イメージ
※注:デザインは今回しません。また、分かりやすく理解してもらうためにユーザー情報は名前だけにします。
#前提
・usersテーブルと投稿用のテーブル(今回はcommentsテーブル)があること。
#MVC(model/controller/view)の設定
###controller設定
class CommentsController < ApplicationController
def index
@comment = Comment.all.order(created_at: :desc)
end
これはプロゲートでもでてきた投稿された順に上から表示しています。
###modelの設定(※ここからプロゲートと違う!)
class Comment < ApplicationRecord
belongs_to :user#追記
end
belongs_toとはなんぞや?って思った方いるかも知れません。
簡単に説明すると、userテーブルと投稿用のテーブル(今回はcommentsテーブル)の2つを紐付けてくれる仕組みのものです。
詳細はこちら!
###view設定
<% @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テーブルをアソシエーションしました。
もし、何か修正点とかございましたらコメント等
恐縮ですが、宜しくおねがいします