我实现了从User
模型中删除图像的代码。
Rails 5.2 Active Storage purging/deleting attachements
我认为它删除了图片,但现在我遇到了错误
undefined method `signed_id' for nil:NilClass
我的视图(images.html.erb
):
<% if @user.images.attached? %>
<% @user.images.each do |image| %>
<%= image_tag(url_for(image))%>
<%= link_to 'Remove', delete_image_attachment_user_url(image.signed_id),
method: :delete,
data: { confirm: 'Are you sure?' } %>
<% end %>
<% end %>
控制器
def images
end
def delete_image_attachment
@image = ActiveStorage::Blob.find_signed(params[:id])
@image.purge
redirect_to root_path
end
我尝试从视图中删除代码,所以它只有这样:
<% if @user.images.attached? %>
<% @user.images.each do |image| %>
<%= image_tag(url_for(image))%>
<% end %>
<% end %>
但是即使删除了“ signed_id”的代码,我仍然会收到错误消息。另外,我不确定为什么它会在接收代码的行中显示:
<%= image_tag(url_for(image))%>
如果我在排队时使用
@user.images.attached?
我认为错误可能是没有附件的图像(尽管应该有一个附件),所以我添加了该支票。