gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:36:56 26 4
gpt4 key购买 nike

什么 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文档以获取更多详细信息。

关于ruby-on-rails - inverse_of 在 mongoid 中是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15242047/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com