gpt4 book ai didi

ruby-on-rails - 单击链接以删除 Active Storage 和 Amazon S3 上的附件

转载 作者:行者123 更新时间:2023-12-05 05:15:05 28 4
gpt4 key购买 nike

有没有人创建了一个表单,用户可以通过单击按钮从 Active Storage 和 Amazon S3 中删除他们以前上传的图像?我用了问题 here作为指南,但我的应用程序设置有点不同。图像保存为数组(请参阅 Controller 参数)。

表单呈现删除按钮和图像,但是当单击删除按钮时,我收到错误消息“无法找到带有‘id’=eyJfcmFpbHM 的空间...”并且我的 set_space 方法中的这一行被突出显示

@space = Space.find(params[:id])

这里是相关代码

Controller

class SpacesController < ApplicationController
before_action :set_space, except: [:index, :new, :create]
before_action :authenticate_user!, except: [:show]


def update
if @space.update(space_params)
flash[:notice] = "Saved!"
else
flash[:notice] = "Something went wrong. Please check your submission and try again."
end
redirect_back(fallback_location: request.referer)
end


def delete_image_attachment
@space_image = ActiveStorage::Blob.find_signed(params[:id])
@space_image.purge_later
redirect_to listing_space_path(@space)
end

private
def set_space
@space = Space.find(params[:id])
end

def space_params
params.require(:space).permit(:space_name, :space_type, :description, space_image: [])
end

end

带有删除按钮/图标的 View

<div>
<% if @space.image.attached? %>
<% @space.image.each do |image| %>
<%= image_tag image %>
<span>
<%= link_to '<- Remove', delete_image_attachment_space_url(image.signed_id),
method: :delete,
data: { confirm: 'Are you sure?' } %>
<i class="fas fa-trash"></i>
</span>
<% end %>
<% end %>
</div>

路线.rb

resources :spaces, except: [:edit] do
member do
get 'listing'
delete :delete_image_attachment
end
end

最佳答案

set_space 正在寻找一个 Space 对象的 id

delete_image_attachment 的调用正在传递 image.signed_idSpaceImage 对象的 id,而不是Space 对象的 id

假设已在 SpaceSpaceImage 类上以标准方式设置导航,则可以从图像对象中找到空间对象。所以做出这些改变...

before_action :set_space, 除了: [:index, :new, :create, :delete_image_attachment]

def delete_image_attachment
@space_image = ActiveStorage::Blob.find_signed(params[:id])
@space_image.purge_later
redirect_to listing_space_path(@space_image.space)
end

这会将正确的空间 ID 传递给 listing_space_path。

关于ruby-on-rails - 单击链接以删除 Active Storage 和 Amazon S3 上的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51939375/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com