0

私は自分の記録を複製しようとしており、アメーバの宝石を使用しています。画像(キャリアウェーブ経由のアップローダー)を除いて、すべて正常にコピーされます

画像については、次のようにアメーバでカスタマイズした設定を行ってみました。

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

しかし、それはまだ画像のパスを返しただけで、ロード時に個々のレコードIDを調べています。

編集:わかりましたので、copy_carrierwave_file gemをインストールして実装しようとしましたが、うまくいかないようです。after_save コールバックでこの関数を呼び出しています

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

サーバーやどこでもエラーは発生しませんが、何もしません

4

1 に答える 1

0

ファイルを手動でコピーできます:

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

ローカル ファイルからファイルをアップロードする別の方法については、こちらで説明しています。

copy_carrierwave_file gemも見ることができます。

于 2016-07-31T16:49:17.703 に答える