ruby-on-rails - Rails 5.2 Active Storage 不删除附加图像
问题描述
我正在尝试删除附加到职位发布的图像。但是点击删除后,附加的图像仍然存在,并且不会从职位发布中删除。
工作展示页面
<div class="ui text container slides">
<i class=" left angle icon"></i>
<i class=" right angle icon"></i>
<% @job.images.each_with_index do |image, index| %>
<div class="slide active">
<%= image_tag image, size: 200 %>
<%= link_to 'Remove', delete_image_attachment_job_url(image.signed_id),
method: :delete,
data: { confirm: 'Are you sure?' } %>
</div>
<% end %>
</div>
</div>
路线
resources :jobs do
member do
delete :delete_image_attachment
end
end
作业控制器.rb
def delete_image_attachment
@image = ActiveStorage::Blob.find_signed(params[:id])
@image.purge
redirect_to root_path
end
解决方案
在我的控制器中,我替换@image = ActiveStorage::Blob.find_signed(params[:id])
为:
def delete_image_attachment
@image = ActiveStorage::Attachment.find(params[:id])
@image.purge
redirect_back(fallback_location: job_path)
end
我的删除操作现在是:
<%= link_to 'Remove', delete_image_attachment_job_url(image),
method: :delete,
data: { confirm: 'Are you sure?' } %>
推荐阅读
- c++ - 如何知道对象文件中符号的可见性
- c++ - jpeg图像的灰度过滤器没有正确舍入值?
- r - 在 Jupyter Notebook 中将 R 作为内核安装时出现问题
- twilio - 执行时不断收到 Twilio 错误消息 90100,但结果有效
- google-chrome-extension - 如何使用 Chrome 扩展程序获得即时 CSS 更改?
- r - 合并计算值
- python - Beautifulsoup 刮不显示一切
- php - Elastic Beanstalk 中的 PHP Mailer 类无法识别
- angular - Angular:9.0.4:“可观察”类型上不存在属性“地图”
' - reverse-engineering - 使用 Ghridra 反汇编 bin 文件