Noobie question about has_many :through

First of all, I am a bit of a noob so sorry if this is a very simple question.

Basically I want to model the relationship between a User (U) and a Questionnaire(Qu). A Qu has one Subject (the user that the questionnaire is about) and many Reviewers (people/users that work with the User answering the Qu about the U).

My migrations can be found <a href="http://pastie.caboo.se/ 84359">here</a> and models ca be found <a href="Parked at Loopia;

I tried the following in script/console

<code> quest1 = Questionnaire.create(:title => "First One")

sub1 = User.create(:login => "sub1", :email => "sub1@email.com", :name => "Subject 1", :password => "password", :password_confirmation => "password")

rev1 = User.create(:login => "rev1", :email => "rev1@email.com", :name => "reviewer 1", :password => "password", :password_confirmation => "password") rev2 = User.create(:login => "rev2", :email => "rev2@email.com", :name => "reviewer 2", :password => "password", :password_confirmation => "password")

a_sub = Subjectships.create(:user_id => sub1.id, :questionnaire_id => quest1.id) a_rev1 = Reviewerships.create(:user_id => rev1.id, :questionnaire_id => quest1.id) a_rev2 = Reviewerships.create(:user_id => rev2.id, :questionnaire_id => quest1.id) </code>

but when I tried <code>quest1.subjects</code>

I get the following error <error> NameError: uninitialized constant Questionnaire::Subjectship         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/../../activesupport/lib/ active_support/dependencies.rb:477:in `const_missing'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/base.rb: 1479:in `compute_type'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:125:in `send'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:125:in `klass'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:169:in `source_reflection'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:169:in `collect'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:169:in `source_reflection'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ reflection.rb:178:in `check_validity!'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ associations/has_many_through_association.rb:6:in `initialize'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ associations.rb:1048:in `new'         from /Users/paulbrackenridge/Rails/projects/work/enabling development/ED/vendor/rails/activerecord/lib/active_record/ associations.rb:1048:in `subjects'         from (irb):18 </error>

I'm not quite at home with the error messages yet, so if anyone could give me a hand I would be eternally greatfull :slight_smile:

Cheers,

P

Right, managed to sort it (boy what a noobie mistake that was :frowning: )

I removed the pluralisation from the model names (god knows how I managed to add that!!) and added a the :source option to my :through clauses. My models now look something like this...

<code>   has_many :reviewerships   has_many :reviewers, :through => :reviewerships, :source => :user

  has_many :subjectships   has_many :subjects, :through => :subjectships, :source => :user </code>