Ich habe eine Sinatra-Anwendung, die auf api-Aufrufe reagiert, und eine Rails-Anwendung, die die Berichte und all die schönen Dinge wie Diagramme und die Website verarbeitet. Beide müssen Zugriff auf einen gemeinsamen Satz von Modellen (z. B. Konten, Sites usw.) haben.
Mein Problem ist: Wie teile ich den Code effizient zwischen den beiden Anwendungen? Zum Beispiel, wenn ich das Konto-Modell in Sinatra bearbeite, möchte ich nicht daran denken, dieselben Änderungen in der Rails-App zu duplizieren. Ich würde lieber nicht die Rails Rack-Montage verwenden, da sich die beiden Anwendungen in separaten Clustern befinden.
Ich habe Vorschläge zu StackOverflow gesehen:
Die beiden Apps befinden sich in verschiedenen Repositories. Im Grunde entwickle ich zuerst die API und dann die kontospezifische Logik später in der Rails-App (hauptsächlich weil Rails viel mehr Bibliotheken hat, die es einfacher machen, solche Dinge zu entwickeln).
Wie würden Sie dieses Problem lösen?
Ich würde mich für ein Juwel entscheiden, oder eher für ein Juwel, Sie müssen es nicht veröffentlichen und dann Bundler Git-Abhängigkeiten verwenden . Wir tun dies stark bei Travis CI und es funktioniert gut, besonders mit den neuen "lokalen" Git-Abhängigkeiten in Bundler 1.2: Ссылка
Tags und Links ruby-on-rails sinatra sharing