【发布时间】:2011-12-20 19:25:57
【问题描述】:
Mongoid 在 habtm 上附带了 .push,它设置了双向的 habtm 关系。尽管删除将#delete 关联记录,但没有记录的方法可以仅删除我见过的关系。有更好的方法吗?
有没有更好的方法来确保唯一性?
has_and_belongs_to_many :following, {class_name: 'User', inverse_of: :followers, inverse_class_name: 'User'}
has_and_belongs_to_many :followers, {class_name: 'User', inverse_of: :following, inverse_class_name: 'User'}
def follow!(user)
self.following.push(user) # this pushes the inverse as well
self.following_ids.uniq!
self.save!
user.follower_ids.uniq!
user.save!
end
def unfollow!(user)
self.following.delete(user.id)
self.save!
user.followers.delete(self.id)
user.save!
end
【问题讨论】:
标签: ruby-on-rails mongoid has-and-belongs-to-many