I would do: Book has_many :authorings has_many :authors, :through => :authorings
Authoring belongs_to :book belongs_to :author has_many :authoring_roles has_many :roles, :through => :authoring_roles AuthoringRole belongs_to :authoring belongs_to :role Role has_many :authoring_roles has_many :authorings, :through => :authoring_roles Author has_many :authorings has_many :books, :through => :authorings So, an 'authoring' encapsulates the concept of an author working on a book, and during that authoring process the roles they fulfilled are encapsulated in authoring_roles. Generally, it's good to approach this not from a data point of view, but from a real world concepts point of view. The models should always try to encapsulate a real world concept, and have a name which describes that concept as simply as possible. -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

