【问题标题】:rails + carrierwave file uploading form arbitrary file fields countrails +carrierwave 文件上传表单任意文件字段计数
【发布时间】:2011-12-09 08:40:25
【问题描述】:

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

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

    您必须使用 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 创建照片对象定义额外的操作,但您无法构建它。

    【讨论】:

    • 感谢这个方法,但 html 生成不是主要问题,可能我应该更具体地问我的问题,问题是为我添加的每个字段构建动态照片对象 @car.photos.build跨度>
    • 我发现我可以生成正确的字段名称,并且不需要预先构建对象,所以它只是正确的输入标签的name 属性,所以我认为你的回答是正确的,谢谢!
    【解决方案2】:

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

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

    【讨论】:

    • 我已经阅读了您的材料,这在我编写自己的上传文件时有所帮助,但现在我需要一点别的东西,我已经更新了我的问题,也许会更清楚
    猜你喜欢
    • 2016-04-05
    • 2023-03-13
    • 1970-01-01
    • 2013-11-20
    • 1970-01-01
    • 2018-06-23
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    相关资源
    最近更新 更多