Ich erstelle eine Rails-Engine für eine Anwendung, an der ich arbeite.Rails mounted engine Verwendung DB-Schema aus der Hauptanwendung
Grundsätzlich ist die Anwendung in zwei Abschnitte aufgeteilt:
- Privat
- öffentliche
Die private Seite die Hauptanwendung ist, wo all Admin-Funktionalität Leben und die öffentliche Website (Motor) sollte in der Lage sein, über die private App auf die Modelle zuzugreifen.
Es klingt wie es in umgekehrter Richtung zu mir, aber das ist, was die Spezifikation fordert.
Ich weiß, im Allgemeinen Sie ein Motormodell in der Haupt App als solche zugreifen würden:
EngineName- :: Modell
Wie würde ich die Hauptanwendung im Innern des Motors zugreifen?
Beispiel:
Ein privater Nutzer gehen würde, um foo.bar/videos/new und ein neues Video zu erstellen.
Ein öffentlicher Benutzer würde zu foo.bar/public/videos gehen und Zugang zu diesen Videos haben.
Das Teilen der Funktionalität in private und öffentliche Abschnitte ist sinnvoll, aber warum erfordert diese Situation, dass Sie das Engine-Muster verwenden? – declan
Ich denke, es ist eine gute Frage, aber es scheint, als würdest du durch unnötige Hürden springen. Was versuchst du wirklich zu erreichen, indem du es so machst, abgesehen davon, dass du die "Spezifikation" erfüllst? Wurde die Spezifikation von einem Programmierer geschrieben? –
Normalerweise würde ich Funktionalität in eine Engine packen, weil ich sie woanders wiederverwenden möchte. Wenn die Engine Aufrufe zum Codieren von der Hostanwendung enthält, ist sie nicht wiederverwendbar. In diesem Fall bin ich neugierig darauf, welchen Nutzen Sie daraus ziehen, es als Engine zu schreiben. Wenn Sie nur eine klare Linie zwischen dem, was öffentlich ist, und dem, was privat ist, zeichnen möchten, könnte es [einfacher, einen Namespace zu verwenden] ( – declan