Rails - 自连接

Rails - Self joins

我对 rails 中的自引用关联有点困惑。也许有人可以帮助我! 我有一个资源模型,我想给它添加配件。配件也应该是一种资源。

所以我在 ressource.rb 中得到了这个:

has_many :accessories, class_name: "Ressource", foreign_key: "accessory_ids"

问题是它不像我期望的那样工作。当我调用 first_ressource.accessories 时,我得到了一个非常好的 ID 列表。但是,当我将相同的配件添加到另一个资源时(比如 second_ressource),first_ressource 的配件就不见了。

我希望能够在多个资源中存储 ID=1 的资源:

first_ressource.accessories = [1,3,5]
second_ressource.accessories = [1,4,6]

谢谢你的帮助!

您需要多对多关系。在这种情况下,你需要一个中间model/table来连接多个配件到多个资源。

您可以在此处查看详细信息:

https://guides.rubyonrails.org/association_basics.html#the-has-many-through-association