Rockmanioff, я тоже сталкивался с такой же проблемой.Возможно, вы захотите посмотреть и на .Mongoid планирует поддержку этой функции в своей версии-кандидате.На данный момент, мы должны сделать все вручную.
class User
include Mongoid::Document
include Mongoid::Timestamps
references_many :fans, :stored_as => :array, :class_name => 'User', :inverse_of => :fan_of
references_many :fan_of, :stored_as => :array, :class_name => 'User', :inverse_of => :fans
def become_fan_of user
fan_of << user
self.save
user.fans << self
user.save
end
def is_a_fan? user
fan_of_ids.include? user.id
end
def unfan user
fan_of_ids.delete user.id
self.save
user.fan_ids.delete self.id
user.save
end
...
end
В консоли вы можете сделать:
User.first.become_fan_of User.last
User.first.is_a_fan? User.last
User.first.unfan User.last
В вашем случае вы можете заменить "fan / fan_of" на "подписчики / подписчики соответственно ".Надеюсь, это поможет.