I'm trying to represent a relationship between users in my application where a user can have many followers and can follow other users.
I would like to have something like user.followers() and user.followed_by()
Could you please tell me in details how to represent this using ActiveRecord?
You need two models, a Person and a Followings
rails generate model Person name:string rails generate model Followings person_id:integer follower_id:integer blocked:boolean
and the following code in the models
class Person < ActiveRecord::Base has_many :followers, :class_name => 'Followings', :foreign_key => 'person_id' has_many :following, :class_name => 'Followings', :foreign_key => 'follower_id' end
and corresponding in the Followings class you write
class Followings < ActiveRecord::Base belongs_to :person belongs_to :follower, :class_name => 'Person' end
You could make the names clearer to your liking (i especially don't like the
Followings-name), but this should get you started.