0

これは私の見解です:

<%= form_for item, :url => comment_item_path(item), :html => {:remote => true, 'portal-transform' => true, :multipart => true} do |f| -%>
    <%= f.fields_for :updates, Update.new, :index => nil do |m| -%>
        <%= m.text_area :comment %><br />
        <%= m.file_field :attachment %>
    <% end -%>
    <%= f.submit "Comment" %>
<% end -%>

そしてコントローラーのアクション:

respond_to do |format|
  format.js do
    render :json => {}
  end
end

comment(text_area)フィールドのみを入力して(file_field)フィールドを空白のままにしてフォームを送信すると、attachment期待どおりにレンダリングされます。しかし、フォームをで送信すると、次のattachmentようになります。

Completed 406 Not Acceptable in 56ms

私にとって何が悪かったのですか?ご案内ください。

ありがとう。

4

1 に答える 1

0

ブラウザは、セキュリティ上の理由から、AJAXを介したファイルのアップロードを許可していません。ただし、フォームのfile_fieldを空白のままにすると、フォームは通常どおりエラーなしで送信されます。これにより、表示されている動作が説明されます。

Rails 3でAJAXを介してファイルをアップロードするには、Remotipartgemを使用できます。

http://os.alfajango.com/remotipart/

使用例は次のとおりです。

http://thechangelog.com/post/7576700785/remotipart-rails-3-ajax-file-uploads-made-easy

于 2012-11-30T17:16:31.910 に答える