2012-02-09 12 views
0

私は、アップロードするために画像フィールドのような重いフィールドを持つレジスタフォームを実装したいと考えています。イメージフィールドでユーザーフレンドリーなフォームを実装する最も良い方法は何ですか?

AJAXを使用しない場合、画像を含むフォーム全体がサーバーに送信されます。これは非常に時間がかかることがあり、フォームが無効な場合、ユーザーはフォームを再度アップロードする必要があります。これはユーザーフレンドリーではありません。

だから、AJAXは解決策になると思います。しかし、どのようにそれを行うための最善の方法ができますか? 画像は一度アップロードする必要があります。画像が無効(サイズが超過、フォーマットが間違っています...)の場合は、再度アップロードする必要があります。

邪魔にならない方法で実装する価値はありますか?

+0

なぜAJAXは解決策だと思いますか?ユーザーが登録されていなくてもAJAX経由で画像をアップロードすることを意味しますか? –

+0

はい、それは私の考えですが、おそらくより効率的な解決策があります。 –

+0

ユーザーに登録させ、次のステップで画像をアップロードさせてください。 –

答えて

1

フォームが無効な場合にイメージの再アップロードを避けるため、この場合はファイルの再アップロードを避ける機能を持つCarrierwaveを使用することができます。 READMEの「フォームを再表示してアップロードを行う」を参照してください。

+0

Carrierwaveとは対照的にPaperclipについてどう思いますか?彼らは同じツールですか? https://github.com/thoughtbot/paperclip –

+0

私はPaperclipやCarrierwaveを使ったプロジェクトに携わってきましたが、いつもかなり基本的な方法で行っています。残念ながら残念ながら私はあなたにその違いについての良いフィードバックを与えることはできません。しかし、はい、両方とも同じ一般的な機能、ファイルのアップロードをサポートしています。詳細は、この[SO答え](http://stackoverflow.com/a/7419851/117704)を参照してください。 – Florent2

+0

Carrierwaveは印象的な宝石です。フォームが無効でページを再読み込みして問題を解決したときに、アップロードしたばかりの画像を覚えておくためのキャッシュ機能があるので、お勧めします。 –

関連する問題