Should the polymorfic modeling be used?


#1

Hi experts,

I am new to rails and am struggling for several days with a following
model
(Rails 2.2.2).

People are submitting requests, each request has one submitter, one
approver, several reviewers and several responsible people.

I was able to get this model working:

class Person < ActiveRecord::Base
has_many :Requests
end

class Request < ActiveRecord::Base
belongs_to :Approver, :class_name => “Person”, :foreign_key =>
“approver_id”
belongs_to :Submitter, :class_name => “Person”, :foreign_key =>
“submitter_id”
end

But I am really stuck in creating HABTM relationship between
requests<->reviewers and requests<->responsible_people… I do not want
to
create separate tables for each group of people as one is sometimes
submitter/approver and sometimes belongs to reviewers/responsible.

Can you someone point me the right direction?
Thanks!
JetPac


#2

Here’s how your code should be:

class Person < ActiveRecord::Base
has_many :requests_as_approver, :class_name => ‘Request’,
:foreign_key => ‘approver_id’
has_many :requests_as_submitter, :class_name => ‘Request’,
:foreign_key => ‘approver_id’
end

class Request < ActiveRecord::Base
belongs_to :approver, :class_name => “Person”, :foreign_key =>
“approver_id”
belongs_to :submitter, :class_name => “Person”, :foreign_key =>
“submitter_id”
end

I can’t see the need for a N:N association here (and thus as
has_and_belongs_to_many association).

Maurício Linhares
http://alinhavado.wordpress.com/ (pt-br) | http://blog.codevader.com/
(en)