Ich habe in diesem SO question untersucht, aber ich habe immer noch Probleme, meinen Kopf um das Konzept zu wickeln.ActiveRecord has_many und gehört_to auf dem gleichen Modell
Ich habe eine ähnliche Einrichtung mit der verknüpften SO Frage, in der ich eine User
Klasse, die sowohl Mitarbeiter und Manager enthält. Ich habe auch ein anderes Modell für Role
(mit den Rollennamen) und UserRole
(mit welchem Benutzer welche Rolle).
angeben Meine Anforderungen, dass ein Mitarbeiter (a User
deren Role
ist User
) kann nur einen Geschäftsführer haben (a User
deren Role
ist Manager
). Jetzt ist dieses Managering-Konzept eine Ergänzung zum aktuellen System, und ich sollte die users
Tabelle nicht ändern, also mache ich eine neue Tabelle mit ihrer eigenen MVC.
Aber jetzt finde ich es schwierig, has_many
und belongs_to
wie die verknüpfte Frage zu verwenden. Wie verwende ich das neue Modell? Ich habe versucht mit :through
, aber es funktioniert nicht (aus irgendeinem Grund).
Mache ich es falsch? Soll ich einfach eine manager_id
Spalte zu users
hinzufügen und die Lösung in der verknüpften Frage in mein Problem einbauen? Wie stelle ich außerdem sicher, dass nur ein User
, dessen Role
Manager
ist, als Manager festgelegt werden kann?
Hinweis: Ich muss sagen, dass ich relativ neu zu Rails und ActiveRecord und sogar Ruby im Allgemeinen bin.
Hinweis 2: Ich verwende Rails 4.2.0, wenn es relevant ist.
Ich sollte nicht die 'users' Tabelle bearbeiten, aber wenn die andere Option noch ein weiteres Juwel hinzufügt, ist vielleicht eine neue Spalte nicht so eine schlechte Idee. – StorymasterQ
Ich denke, ich gehe mit der Spalte 'manager_id'. Wie bekomme ich den neu eingefügten Manager-Namen für die Fehlermeldung? EDIT: Nevermind, habe ich herausgefunden 'manager.name'. – StorymasterQ
"Ein weiteres Juwel hinzuzufügen" ist nicht immer schlecht. Erfinden Sie das Rad nicht aus Angst vor der technischen Schuld oder dem hier nicht erfundenen Syndrom. – max