ruby-on-rails – 什么inverse_of意思是在mongoid?

什么inverse_of的意思是在mongoid协会?使用它而不是没有它可以得到什么?
在一个简单的关系中,两个模型只能以单一的方式相关联,并且关系的名称自动地是与它相关的模型的名称。这在大多数情况下是好的,但并不总是足够的。

inverse_of允许您指定所指的关系。在您希望为关系使用自定义名称的情况下,这是有帮助的。例如:

class User
  include Mongoid::Document
  has_many :requests, class_name: "Request", inverse_of: :requester
  has_many :assignments, class_name: "Request", inverse_of: :worker
end

class Request
  include Mongoid::Document
  belongs_to :requester, class_name: "User", inverse_of: :requests
  belongs_to :worker, class_name: "User", inverse_of: :assignments
end

在此示例中,用户可以请求并分配给门票。为了表示这两个不同的关系,我们需要定义两个关系到同一个模型,但是使用不同的名称。使用inverse_of让Mongoid知道“请求”与“请求者”和“作业”一起与“工作者”一起使用。这里的优点是双重的,我们可以为我们的关系使用有意义的名称,我们可以通过多种方式使两个模型相关联。查看Mongoid Relations文档了解更多详细信息。

翻译自:https://stackoverflow.com/questions/15242047/what-inverse-of-does-mean-in-mongoid

转载注明原文:ruby-on-rails – 什么inverse_of意思是在mongoid?