これが私のlike.rbモデルです
class Like < ActiveRecord::Base
attr_accessible :user_id, :post_id
before_save :increment_post_total_likes
before_destroy :decrement_post_total_likes
scope :desc_ordered, :order => "created_at DESC"
belongs_to :post
belongs_to :user
def increment_post_total_likes
p = Post.find(self.post_id)
p.increment!(:total_likes)
p.save
end
def decrement_post_total_likes
p = Post.find(self.post_id)
p.decrement!(:total_likes)
p.save
end
def self.alreadyLiked(post_id, user_id)
where(:user_id => user_id, :post_id => post_id).any?
end
def self.already_liked?(user_id)
exists?(:user_id => user_id)
end
end
問題は、投稿が好きな場合、投稿列がインクリメントされるだけでなく、それらの2つの関連する列をtotal_likes
共有する別のテーブル列もインクリメントされ、理由がわかりません...post_id
user_id
likesテーブルだけで before_save と before_destroy を使いたい