2011-01-07 5 views
1

私はRailsの3.0.3でフォームを持っているを渡していない提出の際Railsは3リモートフォームの新しい使用しているパラメータ

<%= form_for :photo, :remote=>true, :html=>{:id=>"photo_form", :multipart => true},  :url=>{:action=>"photo"} do |p| %> 
<div id="photo_container"> 
    <div class="photo"> 
    <% if @card.photo.exists? %> 
    <%= image_tag @card.photo.url(:full), :id=>"card_photo" %> 
    <% end %> 
    </div> 
    <label class="cabinet"> 
     <%= p.file_field :photo, :class=>"file" %> 
    </label> 
</div> 
<% end %> 

を、フォトフィールドは、コントローラのアクションに渡されていません。しかし、:remote => trueのビットを削除すると、paramは正常に渡されます。

この質問のRails Remote Form does not post form parametersは、同じ問題があるようですが、答えはここでは一致しません。私のHTMLは明らかに有効で整形式です。

誰でもアドバイスがありますか?私は困惑している。

+0

javacriptのlibを含めていることを確認してください – s84

答えて

2

私が知る限り、リモートで複数の部分のデータを送信することはできません。これは、ブラウザのセキュリティモデルが<file>コンテンツへのアクセスを許可していないためです。これは、リモートメカニズムで使用されているXMLHttpRequestを介してコンテンツをストリーミングする必要があります。

リモートフォームは、通常、複数の部分でサポートされていない同じフォームと同等です。

非同期ファイルのアップロードが必要な場合は、を使用して、メインページがリフレッシュされないようにそのターゲットにフォームを送信する必要があります。フレーム化されたページは、必要に応じて完了時にマスターフレームを更新できるようにするライブラリがあります。

+0

XMLHttpReq(AJAX)のサイズに制限があることを追加します。私はあなたがAJAXを介してかなり大きなファイルをPOSTすることはできないとは思わない... – sethvargo

+0

私は実際には、このサイトの以前の反復で動作していたと付け加えておくべきです。私はこの機能に触れていませんでしたが、私はそれが一点で機能していたことを知っています。 –

+1

* Facepalm *私は遠隔地のプラグイン(https://github.com/formasfunction/remotipart)を使用していたことが分かり、誤設定されています。だからあなたは絶対に正しかったですが、iframeよりも良い方法があります。皆さんありがとう。 –

関連する問題