Jquery-File-Upload в Rails, отправка дважды, JSON и HTML?

0

У меня странный problem-- Я адаптировал код из примера JQuery-File-Upload demo в мое приложение, и всякий раз, когда я загружаю изображение, кажется, что загрузка пытается отправить дважды, один раз с JSON, а затем один раз с HTML,

Почта JSON работает правильно, но HTML Post отправляет нулевые параметры, которые вызывают ошибку.

Я смущен, потому что я буквально копирую ТОЧНЫЕ те же файлы, что и демо, из коробки. Я добавил модель "Загрузить", контроллер, виды и маршруты в свое приложение, и я буквально просто запускаю пример из localhost: 3000/uploads как тест на работоспособность, и он не работает. Я не изменил код из демо, поэтому я не понимаю, почему его внезапно уволили дважды.

Started POST "/uploads" for 127.0.0.1 at 2013-11-19 03:21:39 -0500
Processing by UploadsController#create as JSON
Parameters: {"utf8"=>"✓",   "authenticity_token"=>"SLkjXV0R/pEneunEUzHLOGJ3iKm4KLJgHrAudzWs5v4=", 
"upload"=>{"upload"=>#<ActionDispatch::Http::UploadedFile:0x007fbef632acf0 
@original_filename="aliceten.png", @content_type="image/png", @headers="Content-
Disposition: form-data; name=\"upload[upload]\"; filename=\"aliceten.png\"\r\nContent-
Type: image/png\r\n", @tempfile=#
<File:/var/folders/sb/1k3xvfvn63d8p11mxry4zh6c0000gq/T/RackMultipart20131119-42740-vi3x5y>>}}
(0.1ms)  BEGIN
 SQL (0.3ms)  INSERT INTO 'uploads' ('created_at', 'updated_at', 'upload_content_type',
 'upload_file_name', 'upload_file_size', 'upload_updated_at') VALUES ('2013-11-19 08:21:39', '2013-11-19 08:21:39', 'image/png', 'aliceten.png', 5947, '2013-11-19 08:21:39')
[paperclip] Saving attachments.
[paperclip] saving /uploads/uploads/000/000/027/original/aliceten.png
[AWS S3 200 0.79522 0 retries]    
put_object(:acl=>:public_read,:bucket_name=>"elasticbeanstalk-us-west-2-
859932007099",
:content_length=>5947,:content_type=>"image/png",:data=>Paperclip::UploadedFileAdapter: aliceten.png,:key=>"uploads/uploads/000/000/027/original/aliceten.png")  

(0.4ms)  COMMIT
Completed 201 Created in 803ms (Views: 0.8ms | ActiveRecord: 0.7ms)


Started POST "/uploads" for 127.0.0.1 at 2013-11-19 03:21:40 -0500
Processing by UploadsController#create as HTML
Parameters: {"utf8"=>"✓", 
"authenticity_token"=>"SLkjXV0R/pEneunEUzHLOGJ3iKm4KLJgHrAudzWs5v4="}
(0.1ms)  BEGIN
SQL (0.2ms)  INSERT INTO 'uploads' ('created_at', 'updated_at', 'upload_content_type', 
'upload_file_name', 'upload_file_size', 'upload_updated_at') VALUES ('2013-11-19 
08:21:40', '2013-11-19 08:21:40', NULL, NULL, NULL, NULL)
[paperclip] Saving attachments.
(0.4ms)  COMMIT
Completed 200 OK in 3ms (Views: 0.1ms | ActiveRecord: 0.6ms)

В функции Uploads # create ответчик имеет макет, установленный на false. Не знаете, почему его попытка так тяжело обслуживать HTML?

if @upload.save
    format.html {
      render :json => [@upload.to_jq_upload].to_json,
      :content_type => 'text/html',
      :layout => false
    }
    format.json { render json: {files: [@upload.to_jq_upload]}, status: :created, location: @upload }
  else
  • 0
    Можете ли вы опубликовать свой код JQuery? Я предполагаю, что вы не использовали e.preventDefault() или подобное. У вас может не быть правильной разметки HTML. Если вы разместите свой HTML & JQuery, это будет высоко ценится :)
  • 0
    Спасибо за ответ. На самом деле в моем HTML или Jquery не так уж много, так как это просто то, что поставляется с демо по умолчанию: pastie.org/8492086
Показать ещё 2 комментария

2 ответа

5

Похоже, что вы предоставили : remote => true и : multipart => true параметр в форме remove : remote => true option и попытайтесь отправить это с помощью jQuery и убедитесь, что вам нужно отключить отправку html-формы при нажатии кнопку submit.and также необходимо проверить только один способ загрузки файлов, присутствующий в вашем .js- файле, и убедитесь, что один файл не загружен несколько раз.

  • 0
    Я не думаю, что у меня есть: remote => true где-нибудь в моем Embedded Ruby HTML, хотя для multipart установлено значение true. Как отключить отправку HTML-формы на кнопку? Вы просто устанавливаете кнопку в отключенное => true?
  • 0
    Вот мой ERB HTML: pastie.org/8492086
Показать ещё 1 комментарий
0

У меня была именно эта проблема и я обнаружил, что инициализирую загрузку файла jQuery с помощью селектора классов:

$('.image-upload').fileupload({...})

И я применил этот класс к элементу div и элементу формы, так что это было то, что стреляло дважды.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню