2010-12-30 15 views
0

Ich arbeite an einem Projekt, bei dem mehrere Dateien unterschiedlichen Typs hochgeladen werden müssen.Rails: Hochladen mehrerer Dateien als verschachteltes Modell

Ich möchte die Dateien in der Datenbank (ich bin mir nicht sicher, ob das auch die beste Idee ist) als verschachteltes Modell speichern. Kann als Dokument bezeichnet werden.

Ich habe folgende Fragen.

  1. Muss ich ein Plugin/ein Juwel verwenden, ich habe keine einfache Implementierung davon gefunden.

  2. Wenn ja, was wäre das beste Juwel/Plugin dafür? Soweit ich das ausbessern konnte, unterstützt clipclip nicht das Speichern in der Datenbank, sondern attachment_fu.

  3. Ist es möglich, dies mit jQuery zu tun, ohne die Seite zu aktualisieren?

Ich möchte auch einige Fehler in Bezug auf Dateigröße und Typen behandeln.

Grüßen, Hardik

PS: Ich bin mit Schienen 2.3.5

Antwort

2

vor allem nie jemals Speichern von Dateien in der Datenbank!

Wenn Sie Dateien in der Datenbank speichern, müssen Sie sie abfragen und den gesamten Rails-Stack durchlaufen, nur um die Datei zu erhalten. Wie du dir vorstellen kannst: das ist langsam. Ein Webserver ist viel schneller in der Bereitstellung von Dateien und statischen Inhalten, weil sie dazu gebaut werden. Wenn Ihre Site größer wird, sollten Sie Ihren statischen Content an einer anderen Stelle wie Amazon S3 oder anderen Asset-Hosts platzieren. Wenn sich Ihre Dateien nicht in der Datenbank befinden, sind sie unabhängig und leicht zu verschieben (der Helfer image_tag ist dann Ihr bester Freund).

  1. Natürlich Sie dies nicht tun haben ein Plugin/gem zu verwenden. Man kann immer alles selbst umsetzen, aber das ist natürlich eine schlechte Idee, denn andere haben dieses Rad schon erfunden, was viel Zeit spart.

  2. Büroklammer ist immer noch meine Wahl, ganz nett und meiner Meinung nach einfacher zu handhaben als attachment_fu. Es hat auch Ihre angeforderten Validierungen.

  3. Sicher gibt es http://www.uploadify.com/ zum Beispiel Upload von mehreren Dateien und die Dinge, können Sie sich vorstellen können :)

Grüße,

Alex

+0

Danke. Ich ging schließlich mit einem Büroklammer-Juwel. Obwohl ich noch kein Ajax verwende. – rangalo