2

我正在尝试允许 POST 到包含多个图像的 Rails 中的 JSON API。我一直无法找到与使用 has_many 而不是 nested_attributes 的 API 上传相关的信息。

我从控制器中的参数中得到了这个。

{"component_1"=>
  #<ActionDispatch::Http::UploadedFile:0x007f8b4b5ac188
   @content_type="image/png",
   @headers=
    "Content-Disposition: form-data; name=\"images[component_1]\"; filename=\"test.png\"\r\nContent-Type: image/png\r\nContent-Length: 2125\r\n",
   @original_filename="test.png",
   @tempfile=
    #<File:/var/folders/t_/991c5xb934q_d6z13gg__7br0000gn/T/RackMultipart20130531-45537-dywznr>>,
 "component_2"=>
  #<ActionDispatch::Http::UploadedFile:0x007f8b4b5ac0e8
   @content_type="image/png",
   @headers=
    "Content-Disposition: form-data; name=\"images[component_2]\"; filename=\"icon.png\"\r\nContent-Type: image/png\r\nContent-Length: 4235\r\n",
   @original_filename="icon.png",
   @tempfile=
    #<File:/var/folders/t_/991c5xb934q_d6z13gg__7br0000gn/T/RackMultipart20130531-45537-ju4uy>>
}

我有一个定义了上传器的模型。

我如何实际保存 UploadedFiles 中的图像?另外,我想重命名它们,并且我不希望在存储图像后有任何临时文件。

4

1 回答 1

1

如果没有看到您的控制器或模型代码,很难发表评论,但话虽如此,答案应该很简单。

假设您有一个 Image 模型,其上传器安装在 image_file 列上。如果您在控制器中创建一个新的 Image 对象,那么您Image.create(image_file: params[:component_<number>])对每个上传的图像组件执行类似操作。这应该让您了解它是如何工作的,但它们可能是更优雅的方法(其中之一是nested_attributes)

于 2013-06-01T21:18:51.367 回答