2013-01-24 73 views
1

我正在使用remotipart上传和升级图像使用ajax,问题是当我编辑项目,ajax更新数据,但remotipart(https://github.com/leppert/remotipart)返回图像更新的“解析错误”。解析错误使用Remotipart

这是我的形式看起来像:

= form_for(Achievement.new), html: {multipart: true , remote: true} do |f| 
      = f.text_field :name 
      = f.text_area :description 
      = f.file_field :image 
      = f.submit 'Send' 

我使用一个单一的形式来创建,编辑和删除“成就”。这里是我的JS:

constructor: -> 
    $('.edit_button').click -> 
     $.ajaxSettings.dataType = "json" 
     @id = $(this).data('id') 
     @content = $(this).parent() 
     @name = $('.form_achievement #name') 
     @description = $('.form_achievement #description') 
     @image = $('.form_achievement .avatar img') 
     @button = $('.form_achievement form input:submit') 
     @form = $('.form_achievement form') 

     #Load data to edit on form 
     $.ajax 
     type: 'get' 
     url: "/en/private/achievements/#{@id}/edit/" 

     success: (data) => 
      alert 'edit' 
      @name.val(data.achievement.name) 
      @description.val(data.achievement.description) 
      @stat.html(data.achievement.stat) 
      @value.val(data.achievement.value) 
      @image.prop 'src', data.image 

     #Change method of the form to put and bind event 
     $.ajaxSettings.dataType = "json" 
     @form.attr('method','put') 
     $('.form_achievement form').attr('action', "/en/private/achievements/#{@id}") 
     $('#achievement_form.accordion .form_achievement').unbind('click', NewAchievement) 

     @form.bind 'ajax:success', (xhr, data, status) => 
      @content.slideUp 'slow', -> 
      $(this).remove() 
      alert 'Edit' 

     @form.bind 'ajax:error', (event, response, error) => 
      alert error 
     @button.bind 'change', => @changeButton() 


     error: (data) -> 
      alert 'error' 

    changeButton: -> 
    @form.submit() 

这解决了我的问题,当我试图做的,而不改变图像的编辑,但是当我做编辑试图提升到了一个新的图像,返回我一个“解析错误”。谁能帮我?

+2

难道有事情做与remotipart发送的事实包裹在