3

file_field を含む form_for を送信しています。投稿でフォームが送信されると、コントローラーは実行される .js ファイルで応答します。

file_field はオプションです。

ファイルをアップロードすると、js ファイルが新しいドキュメントで (単純なテキスト ファイルとして) 開かれ、js は実行されません。ファイルをアップロードしないと、応答 div が更新されます。ファイルのアップロードとは関係なく、更新の成功が応答 div または失敗メッセージで通知されるようにします。

これは、いくつかのセキュリティ上の理由で行われている可能性がありますか? これをやりたい人のための回避策はありますか?

だいたい、

フォームの部分的な _action.html.erb:

<div id="response"></div>
<%= form_for ... :remote => true, :url => {..., :format => :js} do |f| %>
    ...
    <%= f.file_field :name %>
<% end %>

コントローラ::アクション

 if not request.post?
    render :partial => 'controller/action'
    return
 else
    @response = "save was successful";
    # renders the action.js.erb
 end

action.js.erb:

$("#response").html("<%= @response %>");
4

2 に答える 2

4

remotipart gem https://github.com/JangoSteve/remotipartを使用してみてください

于 2012-06-13T05:52:19.717 に答える