Я пытаюсь создать метод delete для удаления изображения, связанного с событием в Rails.Я на самом деле заставил его работать до отправки кода, но теперь моя проблема заключается в том, чтобы сделать действие с Ajax.Приведенный ниже код работает и обновляет страницу формы с обновленным списком изображений.
Event.rb
has_many_attached :images
Admin_events_controller
def destroy_single_image
@event_image = ActiveStorage::Attachment.find_by(blob_id)
@event_image.purge
redirect_back(fallback_location: request.referer)
end
Просмотр
<% if @event.images.any? %>
<% @event.images.each do |event_image| %>
<%= image_tag event_image, height: "100" %>
<%= link_to 'Remove', destroy_single_image_admin_events_path(id: event_image.id),
method: :delete,
data: { confirm: 'Are you sure?' } %>
<% end %>
<% end %>
маршрутов
resources :events do
collection do
get 'destroy_multiple_images'
# get 'destroy_single_image'
post 'destroy_single_image', action: "destroy_single_image"
end
end
Запрос параметров(Старые параметры запроса, которые привели меня к изменению моего действия в файле маршрутов. Правильно ли я это сделал? Теперь он работает, как указано выше, но я боюсь любых проблем с безопасностью)
{"_method"=>"delete", "authenticity_token"=>"CrL7UAG671aSMiIVL6slvukHWT5S1YEaSEEdgtu1m8PKGm0deZk15uoPhXzhq/1oLNVp5otd8ai55tM0sLNGpw==", "controller"=>"admin/events", "action"=>"destroy", "id"=>"destroy_single_image", "format"=>"769"}
Так что моя проблематеперь с answer_to: js в методе destroy_single_image.Если я добавлю это как ниже.
Admin_events_controller
def destroy_single_image
@event_image = ActiveStorage::Attachment.find(params[:id])
@event_image.purge
respond_to :js
#redirect_back(fallback_location: request.referer)
end
Я знаю, что получаю ошибку в журналах моего сервера.
Это, я полагаю, связано с действием действия маршрутов?Я не добавил файл js, но он находится в той же папке, что и контроллер событий, и называется так же, как метод destory_single_image.js.erb
Кто-нибудь может пролить свет на это, пожалуйста?Спасибо.
Итак, подведем итоги.Приведенный выше код работает нормально, но обновил страницу формы редактирования при вызове сервера.Теперь я получаю ошибки, когда пытаюсь сделать вызов remote: true, и в моем контроллере есть response_to: js.: D