class Profile
has_many :projects, :through => "teamss"
has_many :teams, :foreign_key => "member_id"
has_many :own_projects, :class_name => "Project", :foreign_key => :profile_id
has_many :own_teams, :through => :own_projects, :source => :teams
end
class Project
belongs_to :profile, :class_name => "Profile"
has_many :teams
has_many :members, :class_name => "Profile", :through => "teams", :foreign_key => "member_id"
end
class Team
belongs_to :member, :class_name => 'Profile'
belongs_to :project
end
Ich muss ein Modell Evaluation
erstellen. Was ich machen möchte, ist einen Link auf der Seite project#view
für jedes Mitglied des Projekts zu generieren, einschließlich des Eigentümers, um eine Evaluation
vorzunehmen. Die Person wird auf den Link klicken und die mit diesem Link verbundene Person bewerten. Der Besitzer des Projekts
wird alle Mitglieder bewerten, und alle Mitglieder werden den Besitzer bewerten.
Ich habe das Modell Evaluation
wie folgt definiert, aber ich denke, ich habe etwas übersehen:
class Evaluations < ActiveRecord::Base
belongs_to :evaluated, :class_name => 'Profile', :foreign_key => "evaluated_id"
belongs_to: :profile, :class_name => 'Profile', :foreign_key => "profile_id"
end
Denken Sie daran, dass die Tabelle Evaluation
eine Vielzahl von Attributen haben wird, daher werde ich nicht mit has_many_and_belongs_to_many
arbeiten.
Wie kann ich dieses Modell erstellen, um das zu tun, was ich möchte, und alle erforderlichen Informationen über die Seite project#show
zugreifen zu können?
Danke!
Bearbeitet
Vorgenommene Änderungen:
class Profile
has_many :evaluations, :dependent => :destroy, :foreign_key => :evaluation_id
has_many :evaluators, :through => :evaluations, :foreign_key => :profile_id
end
class Project
has_many :evaluations,:foreign_key => "project_id"
end
class Evaluations < ActiveRecord::Base
belongs_to :evaluated, :class_name => 'Profile', :foreign_key => "evaluated_id"
belongs_to: :profile, :class_name => 'Profile', :foreign_key => "profile_id"
belongs_to: :project, :class_name => 'Project', :foreign_key => "project_id"