Ich verwende Rails 4 Ruby 2.1.1
Ich muss meine: url,: path,: default ändern, damit ich meine Beispiel-data.csv-Datei im Controller-Verzeichnis erreichen kann. Momentan speichert es meine example_data.csv Datei in public/origin/example_data.csv
.
Aber ich möchte meine example_data.csv Datei im / controllers / original Verzeichnis gespeichert haben.
Das habe ich bisher.
%Vor%Wenn ich den Code ausführe, wird mein Code nicht in das Controller-Verzeichnis geschrieben.
Paperclip
können Sie Dateien an Ihrem bevorzugten Ort hochladen. Sie können die Optionen wie :url
, :path
, :default_url
beliebig ändern.
Bevor wir weiter gehen, lassen Sie mich ein wenig über die Möglichkeiten dieser Optionen sprechen:
%Vor%Ihre erste Anforderung wie folgt:
Ich muss meine: url,: path,: default_url ändern, damit ich meine example-data.csv-Datei im Controller-Verzeichnis erreichen kann.
Ja, es ist möglich. Ihre aktuelle Konfiguration, wie unten gezeigt, würde ohne Änderungen funktionieren.
%Vor% ABER da gibt es einige Fehler, die ich hervorheben möchte. Wenn Sie eine Datei hochladen, wird sie bei der obigen Konfiguration im Verzeichnis Anwendungsordner / controllers / original / original gespeichert. Der letzte Teil des Pfades / original wird aufgrund von /:style
in :path
-Option angegeben. Da Sie für die Anlage keine :styles
-Option angegeben haben, wird nur der Standardstil, d. H.% Co_de%, erstellt.
Bitte beachten , dass sich der Ordner controllers auf der Anwendungsstammebene befindet, die ein nicht öffentlich zugänglicher -Ordner ist.
Nur die Dateien, die unter public (und ihre Nachkommen) hochgeladen wurden, sind über den Webbrowser zugänglich. Wenn Sie nicht planen, die hochgeladenen Dateien irgendwo in Ihrer Ansicht anzuzeigen und / oder nur für eine Hintergrundverarbeitung benötigen, dann erfordert Ihre aktuelle Konfiguration keine Änderung. Es wird gut funktionieren, wie es ist.
Wenn Sie dies erreichen wollten, sind keine weiteren Maßnahmen erforderlich.
ABER Wenn Sie die hochgeladene Datei in einer Webanwendung anzeigen oder darauf zugreifen möchten, müssen Sie sie in den Ordner original
einfügen, auf den über den Browser zugegriffen werden kann. In diesem Fall würde Ihr Code einige Änderungen erfordern.
HINWEIS: Ich habe public
aus dem Pfad entfernt, da /original
den Ordner :style
erstellen würde.
Andernfalls wären die Ordner original
Wenn Sie eine Datei hochladen, wird sie bei der obigen Konfiguration im Verzeichnis Anwendungsordner / public / controllers / original gespeichert. Und Sie können leicht auf die hochgeladene Datei mit einem einfachen Aufruf wie /controllers/original/original/..
in Ihrer Ansicht zugreifen. Zum Beispiel, wie Sie Ihre Frage hochladen Sie eine Datei mit dem Namen @model_instance.csvdata.url
, dann in Ihrer Ansicht können Sie es als verwenden:
erzeugt einen anklickbaren Link zur hochgeladenen Datei als:
%Vor% HINWEIS: example_data.csv
ist ein zufälliger Startwert, der an die Rails angehängt wird.
Es ist immer eine gute Methode, die Option ?12345678
in der Konfiguration anzugeben. Der Grund dafür ist, dass der Benutzer beim Hochladen eines Datensatzes keine Datei hochlädt, aber später versucht, auf den :default_url
für diesen Datensatz zuzugreifen, und dann an den in uploaded file
gesetzten Link weitergeleitet wird. Beachten Sie außerdem, dass für diesen bestimmten Datensatz alle mit default_url
verbundenen Spalten auf attachment
gesetzt sind.
Außerdem bin ich verwirrt Warum sollten Sie den Punkt default_url auf nil
setzen, wenn Sie die gleiche Datei in die Anwendung hochladen möchten . Der Standardweg besteht darin, eine Standarddatei namens example_data.csv
oder missing.csv
zu haben, die nicht mit Ihren hochgeladenen Dateien verknüpft ist. Bitte denken Sie daran, missing.png
oder missing.csv
im Ordner missing.png
, d. H.% Co_de% Pfad zu platzieren. Andernfalls würde beim Klicken auf den Link ein Fehler auftreten.
Tags und Links ruby-on-rails-4