I want to specify relationships between two classes like that
expressed in the following pseudocode:
class User < ActiveRecord::Base
class Project < ActiveRecord::Base
has_one :primary_record_owner, :<pseudo_option_for_referring_to>=>"User"
has_many :record_owners, :<pseudo_option_for_referring_to>=>"User"
has_many :users # this refers to User, too
From the above I seek the following kind of results:
@user.projects # returns all projects associated with the user from
any of the three User associations in Project
@project.primary_record_owner # returns the User instance
@project.record_owners # returns the collection of User instances
@project.users # returns User instances, not necessarily overlapping
with the other associations
The intent I mean to express is that a Project can have any of three
levels of relationship with a User, while a User has only one level of
association with a Project.
I was thinking HABTM, but I don't see how to get my desired
'@user.projects' result from that.
Any helpful comment would be greatly appreciated.