Отправка данных на контроллер рельсов из jquery не работает - PullRequest
1 голос
/ 13 марта 2012

Я использую плагин JQuery (Plupload) для загрузки нескольких файлов на моем сайте.После завершения загрузки я перенаправляю пользователей на страницу редактирования, где они могут отмечать и называть фотографии, которые они только что загрузили.У меня есть доступ к количеству загруженных файлов (путем вызова длины в массиве, в котором хранятся файлы), и я хотел бы установить переменную экземпляра в моем контроллере фотографий, чтобы я мог извлекать только что загруженные файлы.

Перенаправление работает, и журнал показывает параметры как передающие правильное целое число.Вот что показывает журнал:

  Started POST "/photos?files=1" for 127.0.0.1 at 2012-03-12 23:09:17 -0400
  Processing by PhotosController#create as JSON
  Parameters: {"files"=>"1"}

Вот перенаправление и действие post в скрипте:

    //redirect after complete
    function attachCallbacks(uploader) {
    uploader.bind('FileUploaded', function(Up, File, Response) {
        if( (uploader.total.uploaded + 1) == uploader.files.length)
             {
             var target = "/photos";
             var filesAdded = uploader.files.length;
             $.ajax({
                type: 'post',
                url: target + '?files='+filesAdded,
                dataType: 'json'
              });
            window.location = "<%=j photos_path %>";
              }
        })
    }

Вот действие индекса photos_controller.rb, где я пытаюсьустановите переменную, используя параметры:

class PhotosController < ApplicationController
 respond_to :html, :json

 def index
   @data = params[:files]
   @user = current_user
   @photos = current_user.photos
   @photo = Photo.new
 end

Я хотел бы ограничить фотографии в представлении, чтобы показывать только те, которые были добавлены, вызывая что-то вроде:

 @photos = current_user.photos.limit(@data)

Спасибо, давайтеЯ знаю, если вам нужно больше информации.

1 Ответ

1 голос
/ 13 марта 2012

Не совсем то, что вы намереваетесь сделать , используя переменную в контроллере -

Как насчет передачи длины файлов в скрипте при перенаправлении на photos#index:

window.location = "<%=j photos_path %>"+ '?files=' + filesAdded; 

т.е. перенаправление на /photos?files=3, для 3 добавленных файлов

Затем захват files параметров и ограничение фотографий, которые будут отображаться в photos#index:

@photos = current_user.photos.order('created_at DESC').limit(params[:files]) if params[:files].present?
...