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)



On Sat, Jan 24, 2009 at 5:03 AM, Nyc, Petr <jet.jet...@gmail.com> wrote:
> 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
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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 rubyonrails-talk@googlegroups.com
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to