我有三个模型 - 用户,书籍和贡献。
每个@book都有一个标题和一个作者(谁拥有该实例)。
可选地,每个@book可以有许多贡献者。
作者和贡献者来自同一类用户。
编写模型关系的最佳方法是什么?我的直觉是
User :name
Book :title :user_id
Contribution :book_id :user_id
users.rb -
has_many :books
has_many :books, through :contribution
books.rb -
belongs_to :user
has_many :users, through :contribution
contributions.rb -
belongs_to :user
belongs_to :book
......但这似乎是在寻找麻烦。是否有最佳实践方法来处理具有多个关系的模型?
答案 0 :(得分:1)
我不知道您网站的全部需求是什么,但它可以更简单,只是让贡献者成为图书模型的一个属性。书籍只会有一系列的贡献者,就像它有一个名字和作者一样。
如果您为贡献者考虑了更复杂的事情,那么也许可以成为它自己的模型。
答案 1 :(得分:0)
对我有用的是以下内容 -
users.rb -
has_many :books
has_many :contributions
books.rb -
belongs_to :user
has_many :contributions
contributions.rb -
belongs_to :user
belongs_to :book