我需要1到15个照片文件字段。
现在我使用carrierwave gem上传文件,在我的控制器中构建每个照片对象,例如:N.times { @car.photos.build }
,然后在我的视图中为照片提供N
个文件字段。
但是N
是静态值,你可以理解。
如何生成文件字段的动态计数,例如:1开始静态,并在每个用户的ajax请求上添加1个(如用户将点击Add photo field
链接)并动态创建照片对象它@ car.photo.build ?
答案 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。它应该有所帮助。