2016-07-19 25 views
1

Ich habe ein Dokument 'example.docx' im Öffentlichen Ordner meiner App.Dokument anhängen mit Carrierwave von der Konsole

Ich mag ein Thema Datensatz aus der Konsole erstellen, die das Dokument mit carrierwave Juwel wie dies angebracht hat:

Subject.create(group_id: 3, type: 1, attachment: __________) 

subject.rb:

mount_uploader :attachment, FileUploader 

ich versuchte, so zu tun, Es steht in der Dokumentation:

subject = Subject.new 
File.open("public/example.docx") do |f| 
    subject.attachment = f 
end 
subject.save! 

Aber subject.attachment.url Ergebnisse in NoMethodError: undefined method `url' for "#<File.........>":String

Antwort

1

Unter der Annahme, dass Sie ein FileUploader in der Datei haben app/uploaders/file_uploader.rb dann klingt es wie es wahrscheinlich eine App Neustarten ist und/oder Feder Problem - dh. dass Ihre App den Uploader nicht vollständig/erfolgreich neu geladen hat.

So:

  1. Stoppen Sie Ihre Konsole und Server.
  2. Stoppen Sie die Feder spring stop (oder töten Sie die Prozesse).
  3. Starten Sie Ihre Konsole.
  4. Versuchen Sie erneut zu erstellen/speichern.
+1

Vielen Dank, Smathy! – Zelenka

+0

Gern geschehen. – smathy