这是我目前在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-许多附加