ポテパンキャンプ Rails修行その4.5 〜投稿とフォロー〜

今日は昨日と今でやったことを2つと苦戦した点をまとめていきます。

1つ目は投稿、2つ目はフォローです。

今日でRailsチュートリアルで実装するところはひとまず終わり。

 まず1つ目の投稿です。

Micropostモデルを作り実装していきます。チュートリアルではcontentとpictureのカラムを追加しましたが今回は画像投稿なのでpictureだけにしました。

ここは内容的にはそこまで難しくありませんがUserモデルと紐づけていくのでそこをしっかりと理解することが大事です。ここではbelongs_toとhas_manyを僕なりの解釈でまとめていきます。

まずbelongs_toはこのように1対1の関係性が側に書いていきます。この図で言うとid3のcontentはuser_id1と結びつくからです。

f:id:yamasey712:20190726184957p:plain

belongs_to

次にhas_manyです。逆にuser_id1の人が投稿したcontentは何個かあるように1対多の関係性が方に書きます。

f:id:yamasey712:20190726185301p:plain

has_many

したがってmicropost.rbにbelongs_toをuser.rbにはhas_manyを書けば結びつけることができます。

 2つ目はフォローとアンフォロー機能です。ここもbelongs_toとhas_manyが活躍しますのでしっかり理解することが大事です。ここで初登場したのがUserコントローラーにfollowingアクションとfollowerアクションを追加する機能です。resourcesブロックの内側で:memberメソッドを使います。こうすることでURLは/users/1/followingやusers/1/followersのなります。またこれはどちらもデータを表示しますのでgetリクエストが送られるようになります。

f:id:yamasey712:20190726190249p:plain

何と言って毎日コードを書いてはエラーにはまり解決したと思ったらエラーの繰り返しです。チュートリアルに沿っていけばなんとかできてきましたがそこから少しずつ離れて応用していくので頭がいつもパンクしそうです。まとめ方は下手ですがこうしてブログに書くことで少しずつ整理できているので始めてよかったなと感じております。

また明日からはチュートリアルでは学ばなかった部分の実装がメインになります。あと残り9日。2週間をこんなに早く感じるのは小学生の長期休みぶりです。溜め込んで最終日に焦ると変なできになるので毎日着実に進めていきたいです。