前一段时间,我试图删除活动存储的附件,所以我遵循了这个问题的答案:Rails 5.2 Active Storage purging/deleting attachements
但是这样做之后:
def delete_image_attachment
@image = ActiveStorage::Blob.find_signed(params[:id])
@image.purge
redirect_to collections_url
end
每次进入带有图像的视图或指向destroy方法的链接时,我都会开始收到此错误:
所以我稍微更改了代码:
routes.rb
match 'vehicles/:id/:image_id' => 'vehicles#delete_image_attachment', :via => :delete, :as => :delete_image_attachment
vehicles_controller.rb
def delete_image_attachment
@image = ActiveStorage::Attachment.find(params[:image_id])
@image.purge
redirect_back(fallback_location: vehicles_path)
end
我要删除一些图像的视图
<% @vehicle.images.each do |img| %>
<%= image_tag img %>
<%= link_to delete_image_attachment_url(@vehicle, img), method: :delete, data: { confirm: 'Are you sure?' } %>
<% end %>
对已经存在的车辆进行这种工作,但是当我创建新车辆时,在带有该车辆图像的每个视图中都会出现相同的错误。
有人知道这是什么错误,我该如何解决? 另外,还有什么方法可以从活动存储中删除所有数据,例如重置表? 谢谢!