首页 > 解决方案 > Rails 的 Has_And_Belongs_To_Many 关系来处理多重所有权?

问题描述

现在发生的事情是,当用户选择让一本书属于作者时,他们会做出选择并完善。但我希望这本书也能够同时连接到不同的作者。

例如:护身符由斯蒂芬金和彼得斯特劳布共同撰写。现在它只能连接到一位作者。或者例如,如果同一本书的名称被两个不同的作者使用。

应用 > 模型

User 
has_many :books

Book 
belongs_to :user, optional: true 
belongs_to :author, optional: true

Author 
has_many :books, dependent: :destroy

这是我需要做 has_and_belongs_to_many 并创建连接表的情况吗?

标签: ruby-on-rails

解决方案


护身符由斯蒂芬金和彼得斯特劳布共同撰写。现在它只能连接到一位作者。

听起来您在这里需要多对多关系,因为一本书可以属于多个作者,而一个作者可以写多本书,所以是的,has_and_belongs_to_many在这里指定关系并创建一个连接表是正确的方法。

或者例如,如果同一本书的名称被两个不同的作者使用。

我认为不同的书籍在数据库中应该有不同的记录和 ID,但肯定取决于您的具体用例。


推荐阅读