2009-08-14 9 views
1

Ich bin noob mit Rails.Automatisiertes Skript für die Erstellung von Rails-Anwendungen

Ich möchte eine von Rails betriebene Website erstellen, die automatisch eine Rails-Anwendung (Redmine) installieren kann, wenn ein Benutzer ein Konto erstellt (Anwendung erstellen, Benutzereinstellungen einrichten, Datenbank konfigurieren usw.). Jede Rails-Anwendung wird verwendet eine eigene Subdomain.

Irgendeine Idee, wie man das macht?

Antwort

1

möchten Sie vielleicht mit redmine und einem Plugin wie subdomain_fu, die Sub-Domains für jeden Benutzer erstellen, anstatt dann 100 von Rails-Anwendungen auf Ihrem Server zu untersuchen. Du wirst keinen Widder mehr haben. Vielleicht lese ich deine Frage falsch. wenn ich mich entschuldige.

+0

Nein, Sie haben Recht. Solange jeder andere Benutzer die anderen Projekte nicht sieht, ist es eine gute Lösung. –

+0

und um ihnen zu helfen, andere Projekte NICHT zu sehen, schreiben Sie einfach eine authorized_user Methode in den Application Controller oder vielleicht redmine hat schon einen. Subdomains, der bessere Weg :-) – pjammer

0

Sie könnten ein Modell (z. B. Konto) hinzufügen, das Unterdomänen Datenbankverbindungen zuordnet. Wenn eine Anfrage eingeht, wechseln Sie die Datenbankverbindung auf der Basis der Subdomain. Sie können sogar einen Ansichtspfad hinzufügen, so dass jede Subdomain ihr eigenes Aussehen und Verhalten haben kann.

Zum Beispiel in einem before_filter für Anwendungssteuerung:

@account ||= Account.find_by_domain(request.host) 
render :text => "#{request.host} can not be found" and return false if @account.nil? 
ActiveRecord::Base.establish_connection(@account.database_connection) 
self.prepend_view_path @account.view_path 
0

Blick in Schienen-Vorlagen - es ist eine integrierte Funktion, die Sie eine Vorlage für App Erstellung angeben können. Sie können wirklich granular mit ihnen werden - meins erstellt bootstrapped Benutzer und Inhalte. Here's some examples und Here's mine ... Ich denke, es ist auf dem neuesten Stand.

Sie könnten Ihre Anwendung verwenden, um die Vorlage zu generieren, die nur für den Benutzer angepasst wurde, und dann ihre App daraus generieren.

Sie eine Vorlage angeben, wenn Sie den rails Befehl ausführen: rails appname -m templatefile.rb

Verwandte Themen