nil:NilClass

时间:2018-07-04 09:40:39

标签: ruby-on-rails ruby rails-activestorage

前一段时间,我试图删除活动存储的附件,所以我遵循了这个问题的答案: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 %>

对已经存在的车辆进行这种工作,但是当我创建新车辆时,在带有该车辆图像的每个视图中都会出现相同的错误。

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

0 个答案:

没有答案