ruby on rails - Has_and_belong_to_many relation with the same model -
i trying implement has_and_belong_to_many relation same model, don't know how.
for example, user should able follow other users.
also, have multiple fields of same model in model; how give name?
there 2 scenarios , 2 different implementations:
the 'friends' model
let's 1 user can have many :friends each friend object of user model. can way:
has_and_belongs_to_many :friends, class_name: 'user' this tells rails object of user class can have many-to-many relation friends. can call this:
@user_a.friends #=> [@user_x, @user_y, @user_z] # array of user objects @user_x.friends #=> [@user_a, @user_b, @user_c] # array of user objects the 'followers/following' model
let's 1 user can follow other users have other users follow him. how you'll implement it:
has_many :followers, class_name: 'user', inverse_of: :following belongs_to :following, class_name: 'user', inverse_of: :followers this tells rails each user can have many followers array of other user objects, , user accessible others object in following array. example, if @user2 follows @user1, this:
@user1.followers #=> [@user2, @user3] @user2.following #=> [@user1]
Comments
Post a Comment