I think this could work: class Task < ActiveRecord::Base belongs_to :worker belongs_to :manager end
class Person < ActiveRecord::Base end class Manager < Person has_many :tasks end class Worker < Person has_many :tasks end task = Task.create manager = Manager.create worker = Worker.create task.manager = manager task.worker = worker You don't need to create two tables, only to files more... extending the model that is related to the table. Daniel Gaytán 2010/9/11 Brian Ablaza <[email protected]> > I have a People table and a Tasks table. Some People are Managers, some > are Workers. Each Task has a Manager and a Worker. > > How do I define the relationships? I tried a STI setup, where Managers > and Workers inherit from People, and People has a type column. In my > Task table, I have worker_id and manager_id rows. Then: > > task belongs_to worker > task belongs_to manager > worker has_many tasks > manager has_many tasks > > But when I ask for task.worker, or task.manager, it throws an error. > > How can I do this without separate Worker and Manager tables? > -- > 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]<rubyonrails-talk%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > > -- 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.

