Ruby on rails Mongoid关系(自定义访问器)

Ruby on rails Mongoid关系(自定义访问器),ruby-on-rails,ruby-on-rails-3,model,associations,mongoid,Ruby On Rails,Ruby On Rails 3,Model,Associations,Mongoid,我正在Rails应用程序中使用Mongoid。我有一个用户模型,我也有一个角色模型(想想管理员、客人等) 我想设置我的Mongoid关联,以便可以使用以下代码: u = User.first u.invited_roles # returns all roles a user has been assigned r = Role.new r.invitee = user # user id should be stored in the Role r.save! 目前,我的模型设置如下: c

我正在Rails应用程序中使用Mongoid。我有一个用户模型,我也有一个角色模型(想想管理员、客人等)

我想设置我的Mongoid关联,以便可以使用以下代码:

u = User.first
u.invited_roles # returns all roles a user has been assigned

r = Role.new
r.invitee = user # user id should be stored in the Role
r.save!
目前,我的模型设置如下:

class User
  include Mongoid::Document
  has_many :invited_roles, :class_name => 'Role'
end

class Role
  include Mongoid::Document
  has_one :invitee, :class_name => 'User'
end
目前,当我从Rails控制台执行
Role.new
操作时,我会得到一个对象,该对象似乎没有存储被邀请用户的字段。我该如何解决这个问题?我曾见过有人使用的是Reverse_of,但我真的找不到关于这个过程的任何教程或文档

谢谢您的帮助。

好吧,考虑一下——一个用户将被邀请拥有多个角色,但该角色将只有一个用户。现在,这不是have_one意义上的“have one”。相反,它定义了一种子关系

所以,换一个属于你的,你就是金色的

class User
  include Mongoid::Document
  has_many :invited_roles, :class_name => 'Role'
end

class Role
  include Mongoid::Document
  belongs_to :invitee, :class_name => 'User'
end