From 928addf5db9f1ed0d9e796750158797c15293bd8 Mon Sep 17 00:00:00 2001 From: nilsding Date: Sun, 30 Nov 2014 15:13:17 +0100 Subject: [PATCH] added methods for following/unfollowing users --- app/models/user.rb | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/app/models/user.rb b/app/models/user.rb index 3858c8a2..69305a6e 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -42,4 +42,26 @@ class User < ActiveRecord::Base where(conditions).first end end + + # follows an user. + def follow(target_user) + active_relationships.create(target: target_user) + + # increment counts + increment! :friend_count + target_user.increment! :follower_count + end + + def unfollow(target_user) + active_relationships.find_by(target: target_user).destroy + + # decrement counts + decrement! :friend_count + target_user.decrement! :follower_count + end + + # @return [Boolean] true if +current_user+ is following +target_user+ + def following?(target_user) + friends.include? target_user + end end