rails + carrierwave文件上传形成任意文件字段数

时间:2011-10-17 14:27:38

标签: ruby-on-rails file-upload field carrierwave uploading

我需要1到15个照片文件字段。

现在我使用carrierwave gem上传文件,在我的控制器中构建每个照片对象,例如:N.times { @car.photos.build },然后在我的视图中为照片提供N个文件字段。

但是N是静态值,你可以理解。

如何生成文件字段的动态计数,例如:1开始静态,并在每个用户的ajax请求上添加1个(如用户将点击Add photo field链接)并动态创建照片对象它@ car.photo.build

顺便说一句,对不起我的英语。感谢。

2 个答案:

答案 0 :(得分:2)

您必须使用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 :(得分:1)

免责声明:我是帖子的作者。

multiple files upload with carrierwave and nested_form。它应该有所帮助。