3 Stimmen

Hilfe zur Erstellung eines Modells in Rails

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X