2011-08-03 8 views
1

私はRails 3(paperclip/carrierwaveはセットアップのオプションではありません)にカスタム画像アップロードフォームを構築しています。古典的な "検証失敗時の永続イメージ"シナリオを実行する必要があります。 Rails 3でこれを行う "ベストプラクティス"の方法は何ですか?Rails 3キャッシュファイルのアップロード

概要:

  1. ユーザーが画像をフォームに記入
  2. ユーザー
  3. フォームの検証が失敗し、「フォームを送信」をクリック
  4. ユーザ今、彼らは形式でアップロードし、必要ではない画像が表示されるはずですもう一度選択してください
+0

Carrierwaveのソースコードを読む – iwasrobbed

+0

carrierwaveのようなものを実装する必要があります。キャリアウェーブのreadmeを見て、 "フォームを再表示してアップロードを行う"を参照してください。 https://github.com/jnicklas/carrierwave/blob/master/README.md –

+0

提案をいただきありがとうございます - 皆さんは、ソースコードのどこにこのコードが配置されているのかを知っていますか?それを見つけるのに苦労しているIm ... – Houen

答えて

0

これを最初からやっている場合は、ファイルをuploadsディレクトリに置く必要があります。異なるバージョンを格納するための新しいディレクトリ)を作成し、一時ファイル名をモデルの非永続フィールドに格納します。 ...

​​

、その中:あなただけの存在であることをそのフィールドをチェックし、テンプレートで

attr_accessible :foo, :bar, :photo_cache_dir 
attr_accessor :photo_cache_dir 

:-持続しないフィールドはphoto_cache_dir名前を付けることができること例えば

、ケースでは、自分のロジックを使って、アップロードした写真を表示します。

これがベストプラクティスであるかどうかはわかりませんが、私が使用しているものであり、非常にうまくいきます。

1

file_upload_cache gemはcarrierwaveと互換性があり、carrierwaveが動作しない場合に使用できます。

また、搬送波を使用せずにスタンドアロンでも動作します。

ドキュメントはここにある:https://github.com/kenmazaika/file_upload_cache

開示:私はこの宝石を執筆しました。