いつもお世話になります。
現在RailsでSNSのようなものを作っており、いわゆる「いいね機能」を実装しようと考えています。以下のような3つのテーブルを用意しており「いいねボタン」が押されると「Likeテーブル」の「user_id:」に「Userテーブル」の「id:」を、「Likeテーブル」の「tweet_id:」に「Tweetテーブル」の「id:」をそれぞれ書き込み、likes_countカラムにその投稿に関連したレコード(投稿に対する総いいね数)をLikeテーブルから数えて表示するようにしたいと考えております。
以下のようにしているのですが、Likeテーブルに
user_id: 1
tweet_id: 15
という風にレコードが書き込まれた際にのTweetテーブルidの15のlikes_countが増加しません。
間違っている箇所をご指摘いただければ幸いです。
よろしくお願いいたします。
Ruby
1 2Tweetテーブル 3id: 投稿ID 4poster_name: 投稿者名 5post_text: 投稿内容 6likes_count: 総いいね数 7 8Likeテーブル 9user_id: ユーザーID 10tweet_id: 投稿ID 11 12Userテーブル 13id: ユーザーID 14name: ユーザー名 15pass: パスワード 16 17class Article < ApplicationRecord 18 19 has_many :likes, dependent: :destroy 20 21end 22 23class Like < ApplicationRecord 24 25 belongs_to :article, counter_cache: :likes_count, optional: true 26 27end 28
あなたの回答
tips
プレビュー