如何使用Active storage和jbuilder而不是1个映像上载多个映像



这是我目前在Vision模型中拥有的:

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)

我正在使用AmazonS3进行图像存储。如何更改我的代码以便能够上传多个图像文件?

还请记住,我的数据库中有现有的数据,我在那里得到了每个视觉一个图像的图像URL。如何在不影响现有数据库的情况下进行更改?

提前感谢

您需要在模型中指定has_many_attached,并且您的控制器需要准备好接收图像阵列。类似这样的东西:

def vision_params
params.permit(:description, images: [])
end

参见文档:https://edgeguides.rubyonrails.org/active_storage_overview.html#has-许多附加

最新更新