Hi all,
I’d like to get your feedback on the easiest way to find records that
are related via has_many :through based on options in the :through
table. Suppose an Author has_many Books :through a table called
Authorships. The Authorships table is defined as:
create_table “authorships”, :force => true do |t|
t.belongs_to :author
t.belongs_to :book
t.string “role”
end
The “role” can either be “contributor” or “primary author”. The model
definitions are:
class Author < Active Record::Base
has_many :books, :through => :authorships
end
class Book < ActiveRecord::Base
has_many :authors, :through => :authorships
end
class Authorship < ActiveRecord::Base
belongs_to :author
belongs_to :book
end
So supposing I have a Book, how can I find all of the authors whose
role is defined in the :through table as “contributor”?
Similarly, if I have an author, how can I find all of the books that
the author is the “primary author” of?
Thanks!