在 rails/paperclip 中處理一系列圖像 (handling an array of images in rails/paperclip)


問題描述

在 rails/paperclip 中處理一系列圖像 (handling an array of images in rails/paperclip)

I am allowing a user on my website to upload up to three images. So in my form I have these elements:

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

I have some javascript that validates only 3 images or less were selected, and it also creates thumbnails of the images and adds them as a child to div#images. When a user submits the form, then the :images parameter is populated with an array of image information that looks like this:

[ #<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>> ]

In my model, I have 3 attributes:

has_attached_file :image1,
  ...

has_attached_file :image2,
  ...

has_attached_file :image3,
  ...

I am trying to get it so the information from the images parameter that is sent with the form is split up and sent to the respective image attribute in the model, and if the user only uploaded one or two images the other attributes are nil. Is there a way I can make this work in rails using paperclip?


參考解法

方法 1:

I'd strongly suggest you just make 3 x file_fields. Then everything lines up and you're validations will all just work. I know it's not quite as slick, but for 1-3 images... Not really a big deal.

(by Huub MonsTomDunning)

參考文件

  1. handling an array of images in rails/paperclip (CC BY-SA 3.0/4.0)

#paperclip #file-handling #ruby-on-rails #image






相關問題

帶有 S3 的回形針 - 未定義的方法 (Paperclip with S3 - undefined method)

添加文件上傳進度條的最簡單方法(回形針)Apache/Paperclip/Rails (Easiest way to add file upload progress bar (paperclip) Apache/Paperclip/Rails)

EngineYard:分離代碼和資產 (EngineYard : Segregating the code & assets)

在 rails/paperclip 中處理一系列圖像 (handling an array of images in rails/paperclip)

rails - không thể tạo bản ghi với tệp đã tải lên (rails - can't build a record with uploaded file)

在保存到 Rails 模型之前打開臨時文件 (Open the temporary file before it is saved in Rails model)

Rails - 回形針 - 多張照片上傳不保存 (Rails - paperclip - Multiple photo upload not saving)

回形針不為一種型號存儲替代尺寸,但為另一種型號存儲 (Paperclip is not storing alternative sizes for one model, but does for another)

無法使用 S3 圖像的 image.to_file 使用 Paperclip gem 複製圖像 (Can't copy images with Paperclip gem using image.to_file for S3 images)

Paperclip.interpolates 隨機不返回值 (Paperclip.interpolates randomly not returning a value)

未初始化的常量 AWS::S3::NoSuchBucket (uninitialized constant AWS::S3::NoSuchBucket)

來自基類的 Rails STI 條件子類化 (Rails STI conditional sub-classing from base class)







留言討論