2017-01-05 26 views
0

Ich möchte einige Benutzer-generierte Daten in eine CSV-Datei in Produktion in Rails schreiben, aber ich konnte nicht erfolgreich schreiben und die Daten erhalten. Es ist möglich, dass es nicht geschrieben wird, oder dass meine Methode, es zu erhalten, fehlerhaft ist (oder beides).Schreiben in CSV in Rails in Produktion

Dies ist in meinen statischen Seiten Controller:

def home 
    line = ["static_pages","home","test"] 
    CSV.open("db/output.csv", "ab") do |csv| 
    csv << line 
    end 
    ... 
end 

ich zwei Möglichkeiten der Betrachtung der Produktionsversion der Datei output.csv versucht haben, die beide mit dem gleichen Ergebnis.

Methode # 1:

$ heroku run console 
> Dir.chdir("db") 
> puts CSV.open("output.csv").read() 

Methode # 2

$ git fetch 
$ git checkout FETCH_HEAD -- db/output.csv 

Beiden Methoden gibt die Version der Datei, die zuletzt während in der Entwicklungsumgebung wurde aktualisiert.

Ich könnte leicht etwas Grundlegendes hier fehlen. Bitte lassen Sie mich wissen, was Ihrer Meinung nach das Problem sein könnte.

Antwort

1

Sie sollten sich nicht auf das Heroku-Dateisystem verlassen. https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem. Betrachten Sie es als "schreibgeschützt" und versuchen Sie, eine andere Methode zu verwenden, um Daten zu speichern (Datenbank zum Beispiel).

+0

Vielen Dank. Ich erhielt diesen Rat von einem Freund auf FB, der erklärte, dass ich nichts zu gewinnen habe, wenn ich die Datenbank nicht verwende, dass viel Speicher verfügbar ist und dass mein App-Verzeichnis kein verlässlicher Ort zum Speichern von Daten ist. Ich habe ein einfaches Activity-Modell erstellt, das den Zweck erfüllt. –