Problem with many to many relationship

9 views
Skip to first unread message

Linus Pettersson

unread,
Feb 8, 2013, 9:28:16 AM2/8/13
to rubyonra...@googlegroups.com
Hi

I'm trying to create a many to many relationship between two models.

A User can be associated with many Incidents and vice versa.

class User < ActiveRecord::Base
  include ActiveModel::ForbiddenAttributesProtection

  has_many :incident_participants, foreign_key: "participant_id"
  has_many :participated_incidents, through: :incident_participants

end


class Incident < ActiveRecord::Base
  include ActiveModel::ForbiddenAttributesProtection

  has_many :incident_participants, foreign_key: "participated_incident_id"
  has_many :participants, through: :incident_participants

end


The join table:

class IncidentParticipant < ActiveRecord::Base
  include ActiveModel::ForbiddenAttributesProtection

  t.belongs_to :participant, class_name: "User"
  t.belongs_to :participated_incident, class_name: "Incident"
end

Table for IncidentParticipants
  create_table "incident_participants", :force => true do |t|
    t.integer  "participant_id"
    t.integer  "participated_incident_id"
    t.datetime "created_at",               :null => false
    t.datetime "updated_at",               :null => false
  end


So, why doesn't rails get this relationship? When I try to do @incident.participants in my view I get this error:
"Could not find the source association(s) :participant or :participants in model IncidentParticipant. Try 'has_many :participants, :through => :incident_participants, :source => <name>'. Is it one of ?"


Any ideas?

Linus Pettersson

unread,
Feb 8, 2013, 10:50:24 AM2/8/13
to rubyonra...@googlegroups.com
Found the error... I have written t.belongs in one class instead of belongs_to.... Tired...
Reply all
Reply to author
Forward
0 new messages