Rails hat viele und gehört zu einem

Ich habe eine User Modell hat viele projects und ein Project Modell, das kann viele users, sondern gehört auch zu einem einzelnen Benutzer (dh der Benutzer, der dieses Projekt erstellt haben). Es gehört zu einer User. Es ermöglicht auch eine Liste der Benutzer an, die mit ihm verbunden sein, denken, Zusammenarbeit.

Mit diesem im Verstand, meine Modelle so Aussehen:

class User < ActiveRecord::Base
  has_many :assigned_projects
  has_many :projects, :through => :assigned_projects
end

class Project < ActiveRecord::Base
  belongs_to :user
  has_many :assigned_projects
  has_many :users, :through => :assigned_projects
end

class AssignedProject < ActiveRecord::Base
  belongs_to :user
  belongs_to :project
end

Nun, wenn ich will erstellen Sie ein neues Projekt durch einen User, das ist, wie ich es tun würde:

user = User.create(:name => 'injekt')
user.projects.create(:name => 'project one')

Nun, ich weiß, dass projects wird durch eine AssignedProject join-Modell, das ist der Grund, warum project.user zurück nil. Was ich kämpfen, um meinen Kopf herum, ist der beste Weg, um ordnen Sie die Projekt-Ersteller (die übrigens nicht müssen zu user, könnte es sein creator oder sonst etwas beschreibend, wie lange, wie es ist von Typ User).

Die Idee ist, erstellen Sie eine Methode, um zurück projects_created aus einer User die wählen Sie nur Projekte, die von diesem Benutzer erstellte. Wo user.projects werden natürlich wieder ALLE Projekte, die einem Benutzer zugeordnet ist.

Vorausgesetzt, diese Art der Vereinigung ist ziemlich gemeinsame, was ist der beste Weg, das zu erreichen, was ich will? Jede Richtung ist sehr geschätzt.

InformationsquelleAutor Lee Jarvis | 2011-06-30
Schreibe einen Kommentar