0

私は自分のアプリでajax jquery fileuploadを動作させることができません.Ryan Bateの実装をベースにしています.Carrierwave http://railscasts.com/episodes/381-jquery-ファイルアップロード

コンソールにエラーが表示されます: ReferenceError: ファイルが定義されていません

役立つ場合は、エアブレーキからのバックトレースを次に示します。

url/assets/styleitems.js?body=1:6 in "HTMLFormElement.$.fileupload.add"
url/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1:490 in "$.Widget._trigger"
url/assets/jquery-fileupload/jquery.fileupload.js?body=1:815 in "File.<anonymous>"
url/assets/jquery.js?body=1:385 in "Function.jQuery.extend.each"
url/assets/jquery-fileupload/jquery.fileupload.js?body=1:805 in "$.widget._onAdd"
url/assets/jquery-fileupload/vendor/jquery.ui.widget.js?body=1:106 in "null._onAdd"
url/assets/jquery-fileupload/jquery.fileupload.js?body=1:985 in "Object.<anonymous>"
url/assets/jquery.js?body=1:3100 in "fire"
url/assets/jquery.js?body=1:3146 in "Object.self.add"
url/assets/airbrake_shim.js?body=1:77 in "Object.cb.add"

私のアプリケーションコントローラーには、他のファイルがあります:

//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl

jquery-fileupload-rails gemもインストールしています

js.coffee ファイル:

 $ ->
  $('#new_styleitem').fileupload
    dataType: "script"
    add: (e, data) ->
      data.context = $(tmpl("template-upload", file))
      $('#new_styleitem').append(data.context)
      data.submit()
    progress: (e, data) ->
      if data.context
        progress = parseInt(data.loaded / data.total * 100, 10)
        data.context.find('.bar').css('width', progress + '%')

形:

= form_for([@class_object, Styleitem.new], html: {multipart: true}) do |f|
  = f.text_field :styleable_type, type: :hidden, value: @class_object.class.to_s
  = f.number_field :styleable_id, type: :hidden, value: @class_object.id
  = f.number_field :user_id, type: :hidden, value: authority_user.id
  = f.file_field :asset, multiple: true, name: "styleitem[asset]"
  = render partial: 'layouts/drag_and_drop'

layouts/drag_and_drop の内容

%script{id: "template-upload", type: "text/x-tmpl"}
  .upload
    .progress
      .bar{style: "width: 0%"}

私が間違っていることはありますか?

4

1 に答える 1