前一阵子我试图删除活动存储的附件,所以我按照这个问题的答案: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方法的链接时,我都会收到此错误:

enter image description here

所以我稍微改了一下代码:

的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 %>

这种方式适用于已经存在的车辆,但是当我创建新车辆时,每个视图中都会出现相同的错误,并显示该车辆的图像 .

有谁知道这是什么类型的错误,我该如何解决?此外,还有什么方法可以从活动存储中删除所有数据,例如重置表格?谢谢!