Ruby on rails 将Rmagick与上载的文件一起使用

Ruby on rails 将Rmagick与上载的文件一起使用,ruby-on-rails,imagemagick,Ruby On Rails,Imagemagick,从磁盘上存在的文件中读取图像后,image.format和image.filename可以完美地工作。但是,当读取内存中存在的上传文件时(我认为我正确使用了该术语),我根本无法使用rmagick: ap data['file'] #=> #<ActionDispatch::Http::UploadedFile:0x000000071f5d90 @tempfile=#<Tempfile:/tmp/RackMultipart20140331-42056-w8cqh6>, @o

从磁盘上存在的文件中读取图像后,
image.format
image.filename
可以完美地工作。但是,当读取内存中存在的上传文件时(我认为我正确使用了该术语),我根本无法使用rmagick:

ap data['file'] #=> #<ActionDispatch::Http::UploadedFile:0x000000071f5d90 @tempfile=#<Tempfile:/tmp/RackMultipart20140331-42056-w8cqh6>, @original_filename="Screenshot from 2014-03-05 17:27:04.png", @content_type="image/png", @headers="Content-Disposition: form-data; name=\"user[profile_image_attributes][file]\"; filename=\"Screenshot from 2014-03-05 17:27:04.png\"\r\nContent-Type: image/png\r\n">

image = Magick::Image::from_blob(data['file'].read) # this doesn't give an error

image.format # private method `format' called for [ PNG 988x766 988x766+0+0 DirectClass 8-bit 194kb]:Array ( works fine when image has been read from disk )
image.filename # undefined method, works fine when image has been read from disk

提供任何线索吗?

请参阅文档,因为返回值似乎是一个数组。因此,您可能必须调用图像[0]。格式化图像[0]。文件名而不是图像。格式化图像。文件名

我一直在尝试这样做。不知道这个问题怎么会更清楚,更开放。
image = Magick::Image::from_blob(data['file'].read).first
image = Magick::Image::from_blob(data['file'].read).first