2016-12-08 6 views
0

Konnte gute Dokumentation zu diesem Thema nicht finden/verstehen. Ich frage mich, wohin Uploads von CarrierWave gehen? Von meinem Verständnis geht es direkt in die db, oder? Könnte ich erzwingen, dass er in meiner Assets-Pipeline gespeichert wird (oder wie eine Referenz auf die Datei erstellt wird)? Heute hatte ein Problem, wenn image_tag nicht verwendet werden konnte, da es nur Asset aus der Assets-Pipeline packt. Könnte es sein, dass das Speichern von Dateien in der Asset-Pipeline durch Benutzer potenziell sehr riskant und schädlich sein kann? meine FragenRails, wo speichert CarrierWave Dateien?

So:

  • Kann ich/Referenzdatei in der Aktiv Pipeline?

  • Wäre es eine gute Idee?

Danke für das Teilen!

Antwort

1

Wenn Sie an Ihrem Uploader suchen Sie eine Methode store_dir der Standard wie folgt aussieht ...

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

für eine Anlage Sogenannten sehen werden in einem Feld mit dem Namen „oranges.jpg“ genannt image in einem Modell namens FilmReview im Datensatz mit der ID 45 es in gespeichert ist ...

public/uploads/film_review/image/45/oranges.jpg 

Sie store_dir das Bild in einem anderen Verzeichnis zu speichern, ändern können, oder es zu einem Cloud-Dienst wie AWS hochladen. .. siehe Railscasts oder andere Ressourcen für Beispiele, wie man ths macht.

+0

Oh, sehr nett. Jetzt machte es mir klarer. Danke vielmals! –