AJAXでファイルをアップロードします。過去に私は魔法のjQuery form pluginを使ってこれを達成しました。現在私はRailsアプリケーションを構築しており、 "The Rails Way"のことをやろうとしているので、Form Helperとpaperclip gemを使って添付ファイルを追加しています。Rails 4:AJAXでファイルをアップロードするには
rails docsはフォームヘルパーAJAXファイルのアップロードのために動作しないことを警告:真:非同期ファイルアップロードフォームを作る他の形態とは異なり
は、リモートでのform_for提供するなど ように単純ではありません。 Ajax形式の場合、 シリアル化はブラウザ内で実行されるJavaScriptによって行われ、 JavaScriptはハードドライブからファイルを読み取ることができないため、ファイル はアップロードできません。最も一般的な回避策は、フォーム送信のターゲットとなる非表示の iframeを使用することです。
市販のソリューションはありません。だから、私は何が賢明なことをするのだろうかと思います。いくつかのオプションがあるようです:
- フォームヘルパーとiframeトリックを使用します。
- それは機能です拡張するフォームヘルパー+クリップの+ [他のいくつかの宝石]を使用し
- ファイル(これはRailsのの真正トークンと仲良くするかどうかわからない、など)を提出するjQueryのフォームのプラグインを読み込む+フォームヘルパーを使用しますAJAXフォームの提出を許可します。
3つの可能性があります。私は#3、特に[他の宝石]の部分についてはほとんど知りません。私はUploadifyというPic-Uploadのブランチについて言及している2つの同様の質問(thisとthis)を見つけましたが、それらは2歳であり、Rails 2と3を扱っています(そして、Uploadifyは何年も更新されていません)。どのくらい変更されたかを考えれば、これはまったく新しい質問だと思う:
AJAXを使ってRails 4でファイルをアップロードするにはどうすればよいですか?
私は、なぜあなたがいつも "magical jQuery form plugin"を使っている理由を明確に説明していると思います; –
サイドレールのフォームヘルパーに沿ってスムーズに使用する方法についてのアドバイスはありますか?私は:remote => trueを使うべきではないと思っていますし、フォームプラグインが作業をするようにしてください。 – emersonthis
そのプラグインは素晴らしいです - ちょうどそれを試して、魅力のように動作します。有益な質問ありがとう:) – Jay