0

我允许我网站上的用户最多上传三张图片。所以在我的表格中,我有这些元素:

<label>Additional Images*<span class="note">(Maximum: 3, 200 pixels wide)</span></label>
<%= f.file_field :images, { :multiple => "", :accept => "image/*" } %>
<div id="images"></div>

我有一些 javascript 验证只选择了 3 张或更少的图像,它还创建图像的缩略图并将它们作为子项添加到 div#images。当用户提交表单时, :images 参数会填充一个图像信息数组,如下所示:

[ #<ActionDispatch::Http::UploadedFile:0x00000007269588
   @original_filename="test_banner.jpeg",
   @content_type="image/jpeg",
   @headers="Content-Disposition: form-data; name=\"custom_form[images][]\"; filename=\"test_banner.jpeg\"\r\nContent-Type: image/jpeg\r\n",
   @tempfile=#<File:/tmp/RackMultipart20120726-7134-3hqdve>>,
  #<ActionDispatch::Http::UploadedFile:0x00000007269510
   @original_filename="test_portrait.jpeg",
   @content_type="image/jpeg",
   @headers="Content-Disposition: form-data; name=\"custom_form[images][]\"; filename=\"test_portrait.jpeg\"\r\nContent-Type: image/jpeg\r\n",
   @tempfile=#<File:/tmp/RackMultipart20120726-7134-18fcs0m>>,
  #<ActionDispatch::Http::UploadedFile:0x00000007269498
   @original_filename="test_signiture.jpeg",
   @content_type="image/jpeg",
   @headers="Content-Disposition: form-data; name=\"custom_form[images][]\"; filename=\"test_signiture.jpeg\"\r\nContent-Type: image/jpeg\r\n",
   @tempfile=#<File:/tmp/RackMultipart20120726-7134-1q5fy2f>> ]

在我的模型中,我有 3 个属性:

has_attached_file :image1,
  ...

has_attached_file :image2,
  ...

has_attached_file :image3,
  ...

我正在尝试获取它,以便将与表单一起发送的 images 参数中的信息拆分并发送到模型中的相应图像属性,如果用户只上传了一个或两个图像,则其他属性为零。有没有办法可以使用回形针在轨道上完成这项工作?

4

1 回答 1

0

我强烈建议您只制作 3 x file_fields。然后一切都排好,你的验证就可以正常工作了。我知道它不是那么光滑,但对于 1-3 张图像......并不是什么大不了的事。

于 2012-07-26T20:29:43.900 回答