Mongoid中的自我引用不是双向的

时间:2012-03-30 16:37:07

标签: ruby-on-rails ruby ruby-on-rails-3 mongoid

我有一个类:

class User 
  include Mongoid::Document

  has_and_belongs_to_many :following, class_name: "User", inverse_of: :followers
  has_and_belongs_to_many :followers, class_name: "User", inverse_of: :following

当我将用户添加为跟随另一个用户时:

  def follow id
    self.following.push User.find(id)
  end

以下更新,但“关注者”引用不适用于现在正在关注的用户。我假设我不必手动推动创建反向关系,所以我做错了什么?

1 个答案:

答案 0 :(得分:1)

你是否有机会使用设计?如果是这样,您可能在保存反向用户时遇到问题,因为它缺少密码组合。另一个用户,即添加以下用户的用户可能已经过身份验证并且保存正常。我自己在类似的情况下发现了这个问题。

我问过另一个关于如何禁用逆对象验证的问题: Mongoid: disabling validation on inverse objects when saving parent for HABTM relationship Options