Я сохраняю некоторые файлы в локальное хранилище через активное хранилище. Я показываю их как ссылки на своей странице. Это могут быть PDF-файлы, изображения, текстовые документы и т. Д. Я хочу, чтобы рядом с ним была ссылка, чтобы иметь возможность удалять отдельные файлы, но еще не заставил ее работать. Вот что у меня есть:
Модель проектов:
class Project < ApplicationRecord
belongs_to :user
has_one :proj_status, :foreign_key => "status_id", :primary_key => 'status_id'
has_many_attached :uploads
end
Страница выставки проектов:
<%= link_to upload.filename, rails_blob_path(upload, disposition: :attachment) %>
<%= link_to 'Remove', delete_upload_project_url(upload.id), method: :delete, data: { confirm: 'Are you sure?' } %>
Метод загрузки удаления из контроллера проектов:
def delete_upload
attachment = ActiveStorage::Attachment.find(params[:id])
attachment.purge # or use purge_later
redirect_back(fallback_location: projects_path)
end
Я получаю сообщение об ошибке:
[GET] "/ projects / 1 / delete_upload" не соответствует ни одному маршруту
Я думаю, что это проблема маршрутизации, но мне еще не удалось заставить ее работать.
Также вот раздел моих маршрутов:
resources :projects do
member do
delete :delete_upload
end
end
Любые мысли или идеи о том, как заставить это работать?
Вот мои рейк-маршруты для раздела проектов:
DELETE /projects/:id/delete_upload/:upload_id(.:format) projects#delete_upload
projects GET /projects(.:format) projects#index
POST /projects(.:format) projects#create
new_project GET /projects/new(.:format) projects#new
edit_project GET /projects/:id/edit(.:format) projects#edit
project GET /projects/:id(.:format) projects#show
PATCH /projects/:id(.:format) projects#update
PUT /projects/:id(.:format) projects#update
DELETE /projects/:id(.:format) projects#destroy
Если кто-нибудь может мне помочь с этим, я был бы признателен!