Rails具有Has_And_Belongs_To_Many关系来处理多个所有权?

时间:2018-08-15 16:59:52

标签: ruby-on-rails

现在发生的事情是,当用户选择让一本书属于作者时,他们做出的选择是完美的。但我希望这本书也能够同时与其他作者联系。

例如:《护符》由史蒂芬·金和彼得·斯特劳布共同撰写。目前,它只能与一位作者建立联系。举例来说,如果同一本书的名称被两个不同的作者使用。

App>模型

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并创建联接表的情况吗?

1 个答案:

答案 0 :(得分:1)

  

护身符由斯蒂芬·金和彼得·斯特劳布共同撰写。目前只能与一位作者建立联系。

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

  

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

我认为不同的书籍在数据库中应该具有不同的记录和ID,但是可以确定的要取决于您的特定用例。