2016-07-31 22 views
0

Ich versuche, meinen Rekord zu kopieren und die Amöbe Edelstein zu verwenden. Alle Kopie in Ordnung, außer für das Bild (die Uploader über carrierwave sind)Duplizieren Datensatz ist nicht duplizieren Bild

Für das Bild versuchte ich so eine individuelle Einstellung in Amöben tun:

amoeba do 
    customize(lamba { |original_object, new_object| 
     new_object.photo = original_object.photo 
    }) 

aber, dass gerade den Pfad des Bildes noch was wenn das Laden in die individuelle Datensatz-ID hineinschaut.

Edit: ok, also installiere ich den copy_carrierwave_file gem und versuchte es zu implementieren, aber es scheint nicht zu funktionieren. Ich rufe diese Funktion in dem after_save Rückruf

def create_duplicate 
     puts 'Starting duplication' 
     new_recipe = self.amoeba_dup 
     new_recipe.original_id = self.id 

     CopyCarrierwaveFile::CopyFileService.new(self, new_recipe, :photo).set_file 
     new_recipe.save 
end 

ich nicht alle Fehler im Server erhalten oder überall aber es tut nichts tun

Antwort

0

Sie Datei manuell kopieren:

new_object.photo = File.open(original_object.photo.file.file) if original_object.photo.present? 

Einen anderen Weg, Zum Hochladen der Datei aus der lokalen Datei wird here beschrieben.

Sie können auch copy_carrierwave_file gem betrachten.

+0

Ich habe versucht das Juwel, aber es funktioniert immer noch nicht, siehe bearbeiten bitte – DRing

+0

Sieht aus wie es sollte funktionieren .. Haben Sie andere Optionen ausprobieren? (new_object.photo = File.open (original_object.photo.file.file) oder new_object.photo = Rails.root.join ("path/to/image.png"). öffnen) –

+0

Ich tat, ich habe so viele Kombinationen ausprobiert von dem, was du mir gibst. Es hat den Pfad in der Datenbank gespeichert ... aber es lädt es nicht in den neuen Rezeptordner in der App, wenn es versucht zu laden, gibt es keinen Ordner für die ID des neuen Rezepts – DRing