2017-02-01 2 views
2

Ich habe eine App, wo es mehrere Möglichkeiten gibt, verschiedene Ressourcen zu nutzen. Zum Beispiel:Schienen-Controller - konsolidieren oder nicht?

für Projekte:

  • Kunden können, anzeigen, bearbeiten erstellen und ihre Projekte abbrechen
  • Admins anzeigen, bearbeiten und machen andere Änderungen (wie das Ändern der Status und Bearbeitung versteckte Felder)
  • Lieferanten können Projekte anzeigen und frühere Projekte mit anderen Kunden in ihr Portfolio
01 hinzufügen

Für die Verzeichnisstruktur hatte ich vor, diese unter 3 separaten Controllern zu erstellen: "Kunden/Projekte", "Admins/Projekte" und "Lieferanten/Projekte". Aber ich denke jetzt - sollte ich diese alles kombinieren und eher bedingte Logik in den Controller setzen, um zu ändern, was jeder Typ von Benutzer sehen oder tun kann?

Ich mache mir Sorgen um die Autorisierung (ich weiß, ich könnte Pundit verwenden, um das zu lösen?), Sondern auch über zu kompliziert, die eine Steuerung! Was ist die beste Vorgehensweise in einem solchen Szenario?

Antwort

0

Ich entschied mich, sie getrennt zu halten, der Hauptgrund war um die Ansichten. Während Sie mit einer Steuerung für eine Ressource konsolidieren und die Autorisierung mit CanCanCan oder Pundit verwalten können, sind die Ansichten für jede Ressource zahlreich und eindeutig (z. B. eine andere Indexaktion, verschiedene project_params basierend auf den jeweiligen Erstellungs- und Aktualisierungsaktionen). Putting dies alles in einem Controller wäre Hundeausstellung!

Verwandte Themen