Je suis nouveau sur Rails.Comment retourner l'objet fichier de google drive Télécharger
J'ai une méthode qui télécharge un fichier à partir de google drive et l'enregistre sur le disque local. Lorsque le fichier est téléchargé, la console renvoie nil
, mais le fichier se trouve dans le dossier.
Je dois utiliser ce fichier dans mon contrôleur, mais si la méthode de téléchargement renvoie nil
, je ne peux pas le passer en tant qu'objet.
méthode de téléchargement:
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
sortie de la console
après l'exécution de la méthode de téléchargement:
[...]
Writing chunk (1397 bytes)
Writing chunk (1397 bytes)
Writing chunk (1397 bytes)
Writing chunk (619 bytes)
Success - nil
=> nil
[4] pry(main)>
Enregistreur:
Rails.logger.debug(">>> @BACKUP >>>: #{@backup.inspect}")
D, [2017-09-07T20:21:24.835450 #7755] DEBUG -- : >>> @BACKUP >>>: nil
Tout indice sur la façon de procéder serait très apprécié!
Ce qui est dans votre action 'show'? On dirait que c'est de là que vient l'erreur. –
L'action show ne comprend pour l'instant que deux instructions Rails.logger.debug. J'ai mis à jour la question, fondamentalement '@ backup' logs 'nil'. – catch22
Lancez un 'byebug' après la ligne' file_id' dans votre action create et essayez d'exécuter 'DiscourseDownloadFromDrive :: DriveDownloader.new (file_id) .download' pour voir ce que vous obtenez. Deviner l'erreur est lors de la création du lecteur downloader –