Я пытаюсь добавить пользовательское подтверждение удаления с помощью модального режима, но мне трудно понять, как передать объект в модальный режим, чтобы на него можно было ссылаться в действии удаления.
view.html.erb
<% current_user_highlights.each do |image| %>
<%= image_tag image.file_url(:small_thumb) } %>
<span class="overlay btn btn-sm btn-danger" data-toggle="modal" data-target"#delete-highlight-confirmation-modal">DELETE</span>
<% end %>
modal.html.erb
<div class="modal fade" id="delete-highlight-confirmation-modal" tabindex="-1" role="dialog">
<div class="modal-dialog modal-lg" role="document">
<div class="modal-content" align="center">
<div class="modal-header">
<h2>Are you sure you want to delete this highlight?</h2>
</div>
<div class="modal-body">
<div id="delete-highlight-parent-image"> </div>
<div id="delete-highlight-crop-image"></div>
<br>
Вот где я застрял... Есть ли способ "использовать" переменную изображения, на которую ссылаются в блоке представления, чтобы она знала, какое изображение должно быть удалено?
<%= link_to "Yes, delete it", image_path(image), method: :delete, data: { remote: true }, class: "overlay btn btn-sm btn-danger, id: "yes-delete-button" %>
<%= button_tag "No, keep it", class: "btn btn-lg btn-default", id: "no-keep-button", data: { dismiss: "modal" }%>
</div>
</div>
</div>
</div>
Заранее спасибо за любую помощьи понимание, которое вы можете предложить!
ОБНОВЛЕНИЕ:
Вот кое-что, что я пробовал с этого поста.Кажется, я все ближе, но еще не совсем ...
Сначала я установил атрибут data-image
в кнопке вида
<span class="overlay btn btn-sm btn-danger" data-toggle="modal" data-target="#delete-highlight-confirmation-modal" data-image=<%= image_path(image) %>>DELETE</span>
Затем я применил этот атрибутатрибуту 'href' через javascript / jquery
let $deleteImageButton = $('#yes-delete-button');
$deleteImageButton.attr('href', $(this).data('image'));
Это возвращает ошибку:
DELETE http://localhost:3000/images/97 500 (Internal Server Error)
Хорошая новость заключается в том, что Image Id # 97 действительно соответствуетизображение в модале.
Есть идеи, куда я могу пойти отсюда?Опять же, то, что мне нужно, это уничтожить действие в images_controller и передать правильный идентификатор изображения.
ОБНОВЛЕНИЕ 2:
Когда дело дошло до внутренней ошибки сервера, которую я получал, это было связано с каким-то старым кодом ajax, зависшим от предыдущих попыток.Как только я очистил это, это проходит как ожидалось.
$yesDeleteButton.off().on('click', function(event) {
// event.preventDefault();
$(this)
.off('ajax:beforeSend')
.on('ajax:beforeSend', function() {
$body.addClass('loading');
});
$(this)
.off('ajax:success')
.on('ajax:success', function() {
$body.removeClass('loading');
});
Я все еще не уверен на 100%, как заставить исходный объект ссылки удаления "перейти" к модальному, но я все еще пробую кое-что тут и там.