Ruby on rails 4 模型具有多个关系的命名约定
我有三个模型——用户、书籍和贡献 每个@book都有一个标题和一个作者(拥有该实例) 或者,每个@book可以有多个贡献者 作者和贡献者来自同一类用户 编写模型关系的最佳方法是什么?我的直觉是Ruby on rails 4 模型具有多个关系的命名约定,ruby-on-rails-4,Ruby On Rails 4,我有三个模型——用户、书籍和贡献 每个@book都有一个标题和一个作者(拥有该实例) 或者,每个@book可以有多个贡献者 作者和贡献者来自同一类用户 编写模型关系的最佳方法是什么?我的直觉是 User :name Book :title :user_id Contribution :book_id :user_id users.rb- has_many :books has_many :books, through :contribution has_many :books has_
User :name
Book :title :user_id
Contribution :book_id :user_id
users.rb-
has_many :books
has_many :books, through :contribution
has_many :books
has_many :contributions
books.rb-
belongs_to :user
has_many :users, through :contribution
belongs_to :user
has_many :contributions
捐款.rb-
belongs_to :user
belongs_to :book
belongs_to :user
belongs_to :book
……但这似乎是自找麻烦。是否有一种处理具有多个关系的模型的最佳实践方法?对我有效的方法是: users.rb-
has_many :books
has_many :books, through :contribution
has_many :books
has_many :contributions
books.rb-
belongs_to :user
has_many :users, through :contribution
belongs_to :user
has_many :contributions
捐款.rb-
belongs_to :user
belongs_to :book
belongs_to :user
belongs_to :book
- 给我的教训是:不要想得太多
如果你对贡献者有更复杂的想法,那么也许让它成为自己的模型是一种方法 我没有完全理解这些数据。什么是“贡献”?这是书的另一个属性吗?例如,John Smith撰写的第1本书,由Jane Smith撰稿。我希望能够大量搜索稿件-将稿件类型设置为书本模型上的数组会对数据库产生影响吗?如果有大量的稿件和大量的关联,可能会更干净,你应该做它自己的模型。