2016-08-24 9 views
0

thisのためにPaperclipからCarrier WaveまたはRefileに移行したいと考えています。解決方法はhereと書いてありますが、私にとっては複雑でおそらく脆弱です。PaperclipからCarrierwaveまたはRefileに移行

私のRails4アプリは、Paperclipでアップロードされた100本の画像を本番環境に持っています。ファイルは実動サーバーに保管されます。私はマイグレーションのための一連のステップを探しましたが、空のままになっています。

アプリケーションコードの書き換えを必要とせずに移行できる一連の手順はありますか?

また、フォームの検証が失敗した場合に、アップロードしたファイルをPaperclipに保存する別の方法がありますか?

私はここで何が欠けていますか?

UPDATE:

溶液がhttps://stackoverflow.com/users/646389/galatiansによってhereを詳述しようとしました。私のpaperclip:pathと:urlの補間は、id_partitionを使います。私はステージングされていてまだ保存されていないアップロードされたImageとこれを調和させる方法は見当たりません。

答えて

0

画像を取得するために必要なデータだけが既にDBに保存されているため、何もする必要はありません。

+0

があります:http://stackoverflow.com/questions/32449069/wrong-url-with- paperclip-to-carrierwaveを移行してください:http://stackoverflow.com/questions/21640866/rails-convert-paperclip-directory-structure-to-carrierwave ...不思議に思ってください。予期せぬ結果で他の人を見た。 –

1

開発期間が8年であってもCarrierWaveはまだ不安定なので、代わりにShrineを調べることをおすすめしますか? CarrierWave、Paperclip、および他の図書館が持つ多くの制限を解決し、バックグランドとダイレクトアップロードをうまく設計しています。

Migrating from Paperclipセクションには、ShrineとPaperclipのデザインの主要な違いのいくつかが説明されています。ここでは、本番アプリケーションの移行方法に関する完全な説明が記載されています。

+1

「まだ不安定である」と言ったときの意味を広げることはできますか? –

+0

@PerryHorwich 2年以上で実際のリリース(バックポートリリースのみ)([#1914](https://github.com/carrierwaveuploader/carrierwave/issues/1914#issuecomment-205924307))は、 (#1780; https://github.com/carrierwaveuploader/carrierwave/issues/1780)、*検証の前に*処理を行います([#1320](https://github.com/carrierwaveuploader)/carrierwave/issues/1320))、... –

+0

ありがとうございました。それらは私にとって本当の問題のように見えますが、観測の集まりは私が "不安定性"と呼ぶものではありません。git repoは非常に積極的です(https://github.com/carrierwaveuploader/carrierwave)。 –

0

私はCarrierwaveに移行しました。ここでは、関連する統計情報は以下のとおりです。

  • 時間が上で動作し、ペーパークリップをリロード永続的なファイル形式間で のためのソリューションのコードで失敗する - 4時間。私が克服できなかった問題については、OPアップデートを参照してください。
  • carrierwaveに移行する時間、関連するモデル、コントローラ、およびフォームを調整し、テストします。 - 2時間。それほど悪くない。

この重要な情報は、パスを正しく調整するのに役立ちました。同じパスを保つことは、生産に新しい場所に画像を移動することを回避するために私には重要でした:パスと::URL情報hereペーパークリップのようなを生成するための

  • Carrierwaveコード。
  • ペーパークリップ補間情報here
  • link私のデフォルトパスはid_partition not:idを使用していましたが、私は正しい軌道に乗りました。

UPDATE: の移行は、このパラダイムを破る:

@protocol.images.each do |i| 
    tmp=i.dup 
    tmp.avatar = File.open(i.avatar.current_path) 
    tmp.save! 
    @dest.images << tmp   
    end 

参照:まあ、これはDuplicating a record that contains a carrierwave avatar : Getting "can't convert nil into Integer" error

関連する問題