Datei-Upload in Rails- Daten ist ein Objekt, wie kehre ich es meiner Meinung nach?

StackOverflow https://stackoverflow.com/questions/1608312

  •  05-07-2019
  •  | 
  •  

Frage

Wenn ein Upload in meinem Rails-Projekt zu tun, speichert die Datenbank

!

--- Rubin / object: File content_type: application / octet-stream original_path: my.numbers

Wie bekomme ich es nur my.numbers in meiner Ansicht zurückzukehren?

Dank einem Haufen! Marco

ps. Ich möchte nicht, vorzugsweise attachment_fu oder andere Plugin verwenden.

War es hilfreich?

Lösung

Ein Datei-Upload ist tatsächlich von dem Controller als File-Objekt empfängt, nicht als Daten, so ist es in Ihrer Verantwortung, sie in zu lesen. In der Regel werden die hochgeladenen Dateien in einem temporären Verzeichnis und ein offenes Dateihandle es gespeichert ist in dem params.

Man könnte so etwas wie das folgende tun, um die Daten abzurufen:

def create
  # Read in data from file into parameter before creating anything
  if (params[:model] and params[:model][:file])
    params[:model][:file] = params[:model][:file].read
  end

  @model = MyModel.create(params[:model])
end

Sie würden wahrscheinlich müssen sicher sein, dass die Spalte in der Datenbank binäre Daten speichern kann. In MySQL Migration ist dies der: binäre Spaltentyp

.

Andere Tipps

Sie können auf den Namen der hochgeladenen Datei mit dem Helfer original_filename. so params [: Modell] [: Datei] .original_filename

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top