2011-01-17 6 views
6

Ich möchte eine Anwendung in Rails mit Plugin-System erstellen. Potenzielle Benutzer sollten in der Lage sein, ein Plugin hochzuladen (oder besser aus dem Repository zu installieren) und es zu installieren, sodass meine Anwendung mehr tun kann. Dies sollte OHNE FTP/SSH/Low-Level-Zugriff auf den Server erfolgen.Rails 3: App mit internem Plugin-System erstellen

Also gibt es irgendwelche guten Edelsteine ​​oder Tutorials, wie es in Rails 3 getan werden sollte?

+0

möglich Duplikat von [Erstellen eines Erweiterungs-Framework für eine Rails-App] (http://StackOverflow.com/Questions/2570072/building-an-extension-framework-for-a-rails-app) – lulalala

Antwort

0

Haben Sie sich http://edgeguides.rubyonrails.org/plugins.html angesehen?

Es scheint nicht 100% kompatibel mit Rails 3, aber es kann Ihnen den Anfang machen. Die meisten der Plugin-Artikel, die ich gesehen habe, betreffen Rails 2.

+0

Dies ist nicht genau was ich mir vorstelle, weil es auf RoR Stack statt meiner App läuft. Aber das ist eine Alternative für mich. – Migol

0

Ich habe gerade erst vor kurzem über ein solides Konzept für mich selbst nachgedacht. Sie möchten $SAFE, rubys tainting mechanisms ansehen und alles über die Sicherheitsimplikationen von eval() ing ruby ​​code erfahren, wenn Sie dem Benutzer erlauben, seine Plugins in Ruby zu schreiben.

Wenn Sie Ihren Benutzern vertrauen, dass sie es ihnen erlauben, dies zu tun, ist das der Fall.

Es gibt auch viele Ressourcen (Edelsteine, Artikel, googeln) auf sandboxing in Ruby - Sie sollten selbst bewerten, wie praktikabel und/oder sicher diese sind.

Wenn Sie dem Benutzer überhaupt nicht trauen, sollten Sie in writing your own DSL in ruby schauen oder andere Möglichkeiten implementieren, um Funktionalität auszudrücken, ohne den vom Benutzer eingereichten Code direkt auszuführen.

So etwas richtig zu tun ist keine leichte Aufgabe.

+0

Ich dachte eher an ein Wordpress-ähnliches System. Wenn der Benutzer meine Software auf seinem eigenen Server installiert, kann er alles hochladen, was er will, aber wenn er auf meinem Server ist, kann er Plugins auswählen, die vorgeladen und genehmigt wurden. – Migol

+3

Dann könnten Sie sich Rails Plugins ansehen, wie unten vorgeschlagen. Lassen Sie den Benutzer einfach ein Rails-Plugin schreiben, das die von Ihrer Anwendung zur Verfügung gestellte Funktionalität nutzen kann, um sich darin einzuloggen. [Redmine] (http://redmine.org) macht es so, siehe ihre [Redmine Plugins Seite] (http://www.redmine.org/projects/redmine/wiki/Plugins). –