提问人:Ozge Cokyasar 提问时间:7/18/2020 更新时间:3/23/2023 访问量:1602
如何使用 Active storage 和 jbuilder 上传多个图像而不是 1 个图像?
How can I upload multiple images using Active storage and jbuilder instead of 1 image?
问:
这是我目前在我的视觉模型中拥有的:
has_one_attached :image
belongs_to :user
def featured_image_url
if self.image.attachment
self.image.attachment.service_url
end
end
end
在我的视觉控制器中:
def create
@vision = current_user&.visions.create(vision_params)
render :create, status: :created
end
def vision_params
params.permit(:description, :image)
end
在 _vision.json.jbuilder 中:
json.call(
vision,
:id,
:description,
:created_at,
:updated_at
)
json.image_url polymorphic_url(vision.image)
我正在使用 Amazon S3 进行图像存储。如何更改我的代码以便能够上传多个图像文件?
另请记住,我的数据库中有现有数据,我从中获取每个视觉单个图像的图像 URL。如何在不影响现有数据库的情况下进行更改?
先🙏🏼谢谢你
答:
-1赞
Rafael Gomes Francisco
7/18/2020
#1
您需要在模型中指定,并且控制器需要准备好接收图像数组。像这样的东西:has_many_attached
def vision_params
params.permit(:description, images: [])
end
请参阅文档:https://edgeguides.rubyonrails.org/active_storage_overview.html#has-many-attached
评论
0赞
Rafael Gomes Francisco
7/19/2020
@OzgeCokyasar在您的问题上添加错误详细信息。这种方法(如文档)将是正确的方法。
评论