1

jquery-fileupload と rails 4 を使用してファイルをアップロードしようとしています。Firefox/Chrome では動作しますが、IE では動作しません。

アプリケーション.js.コーヒー:

#= require jquery
#= require jquery_ujs
#= require jquery-fileupload/basic
...

ビュー.rb:

= form_for person,
    url: update_avatar_path, method: :post, remote: true,
    authenticity_token: true, multipart: true do |f|
    - if person.avatar?
      = f.hidden_field :remove_avatar, value: '1'
      = f.submit "Remove", class: "btn btn-mini"
    - else
      .fileupload-buttonbar
        .progress.fileupload-progressbar{:hidden => ""}
          .bar{:style => "width: 0%;"}
        %span.btn.btn-mini.fileinput-button
          %i.icon-plus
          %span
            = t('add_picture')
            \...
          = f.file_field :avatar, id: 'fileupload'

update_avatar.js:

$('#fileupload').fileupload
  replaceFileInput: false
  formData: $('#fileupload').closest('form').serializeArray()
  add: (e, data) ->
    $('.progress').show()
    data.submit()
  done: (e, data) ->

  progress: (e, data) ->
    progress = parseInt(data.loaded / data.total * 100, 10)
    $('.progress .bar').css('width', progress + '%')

コントローラー.rb:

def update_avatar
  avatar = avatar_params
  if (!@person.update_attributes(avatar))
    flash.now[:error] = @person.errors.full_messages.join(', ')
  else
    # Success if we updated the avatar or removed it.
    remove = avatar[:remove_avatar]
    if remove.blank? || remove == '1'
      flash.now[:success] = 'Successfully updated.'
    end
  end
end

これはIEが送信しているものです:

Started POST "/people/1853/update_avatar" for 192.168.64.1 at 2013-11-19 09:40:48 -0500
Processing by PeopleController#update_avatar as HTML
  Parameters: {"utf8"=>"✓",     "authenticity_token"=>"4pcx0jCiXmircEl6KgZFtuIPis440uMMnlJoE++NqQk=", "person"=>{"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007f20c0900578 @tempfile=#<Tempfile:/tmp/RackMultipart20131119-15247-lyxibq>, @original_filename="Koala.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"person[avatar]\"; filename=\"C:\\Users\\Public\\Pictures\\Sample Pictures\\Koala.jpg\"\r\nContent-Type: image/jpeg\r\n">}, "id"=>"1853"}

「AS HTML」は FF/Chrome では発生せず、おそらく問題に関係していると思います。指定された iframe ミドルウェアを追加しましたが、違いはありません。

これは応答です:

Completed 500 Internal Server Error in 1180ms

ActionView::MissingTemplate (Missing template people/update_avatar,     application/update_avatar with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :haml]}. Searched in:
  * "/home/jkolb/Development/ago-git/resumedb/app/views"
4

0 に答える 0