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 erstellen Evaluation
. Was ich tun möchte, ist einen Link in project#view
Seite für jedes Mitglied des Projekts, einschließlich des Eigentümers, zu erstellen, um eine Evaluation
Die Person klickt auf den Link und bewertet die Person, die mit diesem Link verbunden ist. Der Besitzer des Project
wird alle Mitglieder bewerten, und alle Mitglieder werden den Eigentümer bewerten.
Ich habe das Modell Evaluation
wie folgt, aber ich glaube, ich vermisse etwas:
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
Die Erinnerung daran Evaluation
Tabelle wird Tonnen von Attributen haben, deshalb werde ich nicht mit has_many_and_belongs_to_many
.
Wie kann ich dieses Modell erstellen, um das zu tun, was ich will, und wie kann ich auf alles zugreifen, was ich brauche? project#show
Seite?
Danke!
Bearbeitet
Änderungen vorgenommen:
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"
end