2017-01-22 4 views
0

Ich habe eine Webanwendung mit Rails 4, wo Sie sich anmelden müssen, um es zu verwenden. Jetzt möchte ich eine Demoversion dieser App. Mit Demoversion meine ich eine Version, die alle Funktionen der ursprünglichen App hat, aber ohne Login. Und alle Demo-Daten sollten (und können leicht) von Zeit zu Zeit gelöscht werden (entweder automatisch oder manuell).Rails 4: So erstellen Sie eine kostenlose Demo-Version basierend auf Original-App

Mit der ursprünglichen App werde ich die Demo-Version mit dem geringsten Aufwand implementieren. Idealerweise kann ich den Großteil des ursprünglichen Codes ohne Änderungen verwenden. Änderungen am ursprünglichen Code werden jedoch in der Demoversion ohne zusätzliche Arbeit verfügbar sein.

Meine erste Idee war, die Demoversion nur im Cache/Sitzung zu implementieren, so dass die Daten gelöscht werden, wenn die Sitzung abgelaufen ist. Ich habe diese Idee wegen der tiefen Integration von ActiveRecord in der ursprünglichen App abgebrochen. Ich müsste alle Demo-Klassen neu codieren und/oder einige abstrakte Elternklassen erstellen und so weiter.

Die zweite Idee war, einfach die Original-App zu verwenden, aber jedem Demo-Account ein Flag hinzuzufügen, damit sie von allen regulären unterschieden werden können. Ich zögere bei dieser Idee, weil ich Angst habe, meine Datenbank (dh die Tabellen, die ich für die Original-App verwende) mit Demo-Daten in die Luft zu sprengen, was zu geringerer Leistung und höheren Kosten/Risiko falscher Interpretationen bei der Auswertung der App-Daten führt viele Konten wurden gestern erstellt.

Haben Sie Ideen, wie Sie eine solche Demo-Version auf elegante Weise realisieren können? Smart Ansätze willkommen!

Antwort

1

Sie können in ApplicationController ein Guest-Benutzerkonto und eine before-Aktion haben, die prüft, ob sich die aktuelle Anwendung im Demo-Modus befindet (spezifierbar über custom config) und den Benutzer automatisch anmeldet.

Sie können die Demo-Daten mit einem Cron-Job löschen. Whenever ist eine gute Lösung für die Verwaltung von Cron-Jobs in Ruby.

+0

Ja, ich denke, ein Konto bei einem Demo-Flag, die beste Lösung zu erzeugen. Ein Cron-Job löscht alle alten Demo-Accounts. Dies wird definitiv die Statistiken komplizieren (weil ich alle Demokonten herausfiltern muss), aber ich werde viel redundanten Code und Aufwand sparen, um eine separate Demoversion der App zu implementieren. – user2148956

0

für automatisierte gefälschte Daten erstellen Verwendung wann immer und faker Edelsteine. Faker wird gefälschte Daten generieren. Wann immer für Cron Job. Und nach jeder Demo-Sitzung werden die Mock-Daten gelöscht.

nehmen diesen Punkt: session, cron, gefälschte Samen Daten

Verwandte Themen