2016-04-09 3 views
1

Был поиск, но ничего не было близко к моему вопросу, кроме this php question.AJAX Загрузка изображения с помощью React, Rails и Paperclip

В моем компоненте, использующем Rails 5, я мог загрузить изображение на S3, только если я отправить форму; Я не хочу, чтобы обновить страницу, так что я думал, что я мог бы просто использовать AJAX для этого:

... 

imageUpload(){ 
    var formData = $(this).serialize(); 
    $.ajax({ 
     url: '<url>', 
     type: 'POST', 
     data: formData, 
     async: false, 
     cache: false, 
     contentType: false, 
     processData: false, 
     success: function (data) { 
      console.log(data); 
     }, 
     error: function() { 
      alert("error in ajax form submission"); 
     } 
    }); 
}, 

... 

HTML-:

<form encType="multipart/form-data" acceptCharset="UTF-8"> 
    <input 
    type="file" 
    name="user[evidence]" 
    id="user_evidence" 
    /> 
    <button className="success button small" onClick={this.imageUpload}>Upload</button> 
</form> 

ГОЕС методу обновления Ajax (URL находит метод не проблема):

... 

def update 
u = User.find(1) 
u.update_attributes(user_evidence) # causing ajax to return an error 
end 

private 
    def user_evidence 
    params.require(:user).permit(:evidence) 
    end 

При добавлении изображения и нажатии кнопки ничего не загружается на s3. Думаю, я пропустил какой-то удаленный информацию с ajax?

EDIT:

Я создал простой рельсы 5 приложения с этой проблемой here.

ответ

0

Вы не можете использовать this внутри своего метода для ссылки на форму. Попробуйте использовать refs.

<form ref="myForm" ...> 
... 
var formData = $(this.refs.myForm).serialize(); 
+0

Спасибо. Я пробовал это, но получаю сообщение об ошибке с методом 'update'. См. Обновленное сообщение. – Sylar

+0

Еще одна проблема. См. Мое обновленное сообщение. – Sylar

0

Вы пробовали:

<form remote="true"...> 
+0

Привет. Я сообщу вам через несколько недель, когда я перезапущу проект с нуля. – Sylar

+0

Я обновил сообщение с помощью простого приложения, демонстрирующего ту же проблему. – Sylar

Смежные вопросы