Ich bin neu bei Rails.Wie Dateiobjekt von Google Drive-Download zurückgeben
Ich habe eine Methode, die eine Datei von Google Drive herunterlädt und speichert es auf der lokalen CD. Wenn die Datei heruntergeladen wird, gibt die Konsole nil
zurück, aber die Datei befindet sich im Ordner.
Ich muss diese Datei in meinem Controller verwenden, aber wenn die Download-Methode nil
zurückgibt, kann ich sie nicht als Objekt weitergeben.
Download-Methode:
def download
found = google_files.select { |f| f.id == file_id }
file_title = found.first.title
file = session.file_by_title(file_title)
path = File.join(Backup.base_directory, file_title)
file.download_to_file("#{path}")
end
Controller:
def create
# file_id = params.fetch(:file_id)
file_id = "0Byyflt8z3jarbm5DZGNNVXZSWjg"
@backup = DiscourseDownloadFromDrive::DriveDownloader.new(file_id).download
end
Konsole Ausgang nach der Download-Methode ausführt:
[...]
Writing chunk (1397 bytes)
Writing chunk (1397 bytes)
Writing chunk (1397 bytes)
Writing chunk (619 bytes)
Success - nil
=> nil
[4] pry(main)>
Logger:
Rails.logger.debug(">>> @BACKUP >>>: #{@backup.inspect}")
D, [2017-09-07T20:21:24.835450 #7755] DEBUG -- : >>> @BACKUP >>>: nil
Irgendein Tipp, wie man damit fortfährt, würde sehr geschätzt!
Was ist in Ihrem 'show' Aktion? Sieht so aus, als käme der Fehler von hier her. –
Die Show-Aktion enthält im Moment nur zwei Rails.logger.debug-Anweisungen. Ich habe die Frage aktualisiert, grundsätzlich '@ backup' logs' nil'. – catch22
Wirf einen 'byebug' nach der Zeile' file_id' in deiner Erstellungsaktion und versuche 'DiscourseDownloadFromDrive :: DriveDownloader.new (file_id) .download' auszuführen, um zu sehen, was du bekommst. Das Ermitteln des Fehlers ist beim Erstellen des Laufwerk-Downloaders –