Класс Actual
управляет созданием и удалением объектов в классе Friendgroup
.Страница формы
<ul id=friendgroups> <%= render @friendgroups %> </ul>
<%= form_with model: Friendgroup.new, data: {'js-friendgroup-form' => true} do |form| %>
Name <%= form.text_field :name %>
<%= form.submit %>
<% end %>
правильно вызывает коллекцию групп друзей при загрузке страницы, контроллер для групп друзей создает записи:
def create
params[:friendgroup][:user_id] = current_user.id
@friendgroup = Friendgroup.new(friendgroup_params)
authorize @friendgroup
if @friendgroup.save
render partial: 'friendgroup', locals: {friendgroup: @friendgroup}
end
end
При загрузке страницы загружаются существующие объекты:
<li data-js-friendgroup-id=<%= friendgroup.id %>>
<%= friendgroup.name %> <%= link_to "Delete", friendgroup, remote: true, method: :delete, data: { confirm: "Are you sure you want to delete '#{friendgroup.name}'?" } %>
Однако действия AJAX не просачиваются обратно в индекс, что приводит меня к выводу, что функции javascript не связаны с соответствующими классами / элементами:
//= require jquery3
//= require jquery-ui
//= require rails-ujs
$(document).ready(function() {
$('[data-js-friendgroup-form]').on("ajax:success", function(event, data, status, xhr){
var friendgroup = $(xhr.responseText).hide();
$('#friendgroups').append(friendgroups);
friendgroup.fadeIn(1000);
// $('#friendgroups').append(xhr.responseText);
});
$('[data-js-friendgroup-id]').on("ajax:success", function(event, data, status, xhr){
var friendgroup_id = xhr.responseJSON.id;
$('[data-js-friendgroup-id=' + friendgroup_id + ']').hide();
});
});
Другой возможный виновник - ошибка консоли TypeError: url.indexOf is not a function
, активируемая jQuery3, но это не имеет ничего общего с приведенным выше кодом.
Как эти кросс-модельные действия могут выполняться правильно?