rails + carrierwave - форма загрузки файла, количество полей произвольного файла - PullRequest
2 голосов
/ 17 октября 2011

Мне нужно от 1 до 15 полей для фотографий.

Теперь я загружаю файлы с помощью самоцвета carrierwave, создающего каждый фотообъект в моем контроллере, например: N.times { @car.photos.build }, а затем предоставляю N полей для фотографий в моем представлении.

Но N - это статическое значение, как вы можете понять.

Как я могу сгенерировать динамический счет файловых полей, например: 1 статический от начала и добавить еще 1 на ajax-запрос каждого пользователя (например, пользователь будет нажимать на ссылку Add photo field) и динамически создавать для него объект фото @ car.photo.build

Кстати, простите за мой английский. Спасибо.

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Вы должны использовать JavaScript для генерации динамических полей. Примерно так, используя jquery:

var photos_count;
jQuery(function() {
  photos_count = $('#photos_fields > field').size();
  $('#add_photo').each(function() {
    this.onclick = function(event) {
      $("#photos_fields").append("<div class='field'><label>Photo</label><input name='car[photos_attributes][" + photos_count + "][image]' type='file'/></div>");
      photos_count++;
    };
  });
});

Вы можете определить дополнительное действие для ajax создания объектов фотографий, но вы не можете его создать.

1 голос
/ 17 октября 2011

Отказ от ответственности: я автор поста.

См. загрузка нескольких файлов с помощью carrierwave и nested_form . Это должно помочь.

...