has_many :relationships, foreign_key: follower_id, dependent: :destroy
Belongs to attributes in relationship model.
Validations to ensure follower and followed ids are present.
has_many :followed_users, through: :relationships, source: :followed
follow! and following? methods to user model.
Test for following.
unfollow! method.
Reverse relationships allowing us to call both user.followers as well as user.followed_users.