2017-11-03 4 views
0

Ich versuche, Bilder auf Google Drive mit Schrein hochladen. Ich folgte Anweisungen von diesem Juwel Rails Shrine Bild Upload auf Google Drive Fehler

ich diese Edelsteine ​​zu meinem Projekt hinzugefügt

gem 'shrine' 
gem 'shrine-google_drive_storage' 

Das ist meine config/shrine.rb

require "shrine" 
require "shrine/storage/google_drive_storage" 

Shrine.storages = { 
    cache: Shrine::Storage::GoogleDriveStorage.new(prefix: "cache"), 
    store: Shrine::Storage::GoogleDriveStorage.new(prefix: "store"), 
} 

Shrine::Storage::GoogleDriveStorage.new(
    prefix: "store", 
    google_drive_client_secret_path: "#{Rails.root}/config/client_secret.json", 
    drive_public_folder_id: '0Bz_kkknizZmZRXZzeXdua1FNUXc', 
    google_drive_options: { 
     path: proc { |style| "#{id}_#{photo.original_filename}_#{style}" }, 
     }, 
) 

aber wenn ich versuche Bild hochzuladen ich diese Fehlermeldung

NameError (undefined local variable or method `content_type' for #<Shrine::Storage::GoogleDriveStorage:0x00000004009868>): 

Kennt jemand wh Bevor ich Fehler gemacht habe?

+0

Sie machen nichts falsch, außer was Wasif schon darauf hingewiesen hat. Es scheint, dass shrine-google_cloud_storage nicht richtig getestet wurde, Sie sollten ein Ticket im Repo öffnen: https://github.com/verynear/shrine-google_drive_storage –

Antwort

0

Sie sollten initialisieren Shrine::Storage::GoogleDriveStorage mit allen erforderlichen Optionen und weisen Shrine Speicher zu entsprechenden (cache und store) wie folgt:

Shrine.storages = { 
    cache: Shrine::Storage::GoogleDriveStorage.new(
    prefix: "cache", 
    google_drive_client_secret_path: "#{Rails.root}/config/client_secret.json", 
    drive_public_folder_id: '0Bz_kkknizZmZRXZzeXdua1FNUXc', 
    google_drive_options: { 
     path: proc { |style| "#{id}_#{photo.original_filename}_#{style}" } 
    } 
), 
    store: Shrine::Storage::GoogleDriveStorage.new(
    prefix: "store", 
    google_drive_client_secret_path: "#{Rails.root}/config/client_secret.json", 
    drive_public_folder_id: '0Bz_kkknizZmZRXZzeXdua1FNUXc', 
    google_drive_options: { 
     path: proc { |style| "#{id}_#{photo.original_filename}_#{style}" } 
    } 
) 
} 

Danach müssen Sie eine Uploader-Klasse erstellen, sagen wir, ImageUploader und einführen ein Anhangsattribut in Ihrem Modell Für detaillierte Anweisungen folgen Sie bitte den Schritten in janko-m/shrine quickstart section, um sich an Ihre Bedürfnisse anzupassen.

Verwandte Themen