Ruby on Rails(PicTweet)

ツイートにコメントを投稿しよう編

まずターミナルでコメントのモデルを作成する

生成されたマイグレーションで下記を追加する

t.integer :user_id

t.integer :tweet_id

t.text :text

そしてマイグレーションを実行する

 

アソシエーションを定義する

belongs_to :モデル単数系で、アソシエーションを定義する。今回はTweetとuserとする

複数のコメントを所有できるhas_many:モデル複数形でコメントを組み込む

app:models/user.rbにも追記する

 

createアクションのルーティングを設定する

routes.rbを下記のように書き換える

f:id:kikiMustang:20201124211230j:image

commentsコントローラーを作成する

 

comments_controller.rbを編集する

createアクションを定義し、ストロングパラメーターも利用する

f:id:kikiMustang:20201124212034j:image

そしてコメントを保存したのち、コメント完了画面を表示させるのではなく、コメントしたツイートの詳細画面へリダイレクトさせる

f:id:kikiMustang:20201124212425j:image

 

コメント投稿フォームを投稿詳細に追加しよう

app/views/tweets/show.html.erbの23行目以降を追加する

f:id:kikiMustang:20201124221218j:image

コメント表示欄を投稿詳細に追加する

tweets_controller.rbのshowアクションを編集する

下記を追記する

@comment = Comment.new

@comments = @tweet.comments.includes(:user)

下記を追記することでもし@commentsが空だった場合でもエラーが起こらないようにする