class User < ActiveRecord::Base attr_protected :friend_list def following self.class.all(:conditions => "id in (#{friend_list})") end def follow(id) update_attribute(:friend_list, (friend_list.split(',').map(&:to_i) | [id.to_i]).join(',')) end def unfollow(id) update_attribute(:friend_list, (friend_list.split(',').map(&:to_i) - [id.to_i]).join(',')) end def followers self.class.all(:conditions => ['find_in_set(?, friend_list)', id]) end end