Я использую ActionCable для отображения массива объектов в таблице в режиме реального времени, каждый из которых имеет свою собственную форму с кнопкой отправки.Оригинальные кнопки отправки, загруженные вместе со страницей, работают отлично, но те из обновлений AC ничего не делают.Они выглядят идеально, просто их кнопка отправки не работает.Я должен перезагрузить страницу, чтобы заставить их работать.Я использую одно и то же частичное как для исходных, так и для обновленных объектов AC.
Взглянув на html-формы, я не вижу разницы между работающей и не работающей кнопкой формы / отправки, кроме маркера подлинности.Журналы сервера показывают мне, что ничего не происходит, когда я нажимаю на сломанные кнопки, и, как я понимаю, в консоли браузера нет никаких ошибок или чего-либо еще.Я попытался удалить турболинки, но это не помогло, я новичок в WebSockets, поэтому, должно быть, я что-то упустил или неправильно понял здесь.
Частичное:
<tr id="<%= (order_item.status == 'new' ? 'new-' : 'ip-') + order_item.id.to_s %>">
<%= form_with(model: order_item) do |form| %>
<td><%= order_item.car&.name || DailyOffer.model_name.human %></td>
<td><%= order_item.updated_at.hour %>:<%= order_item.updated_at.min.to_s.rjust(2, '0') %></td>
<td>
<%= form.submit t(order_item.status == 'new' ? :general_start : :general_ready), class: "btn btn-secondary btn-tall" %>
</td>
<% end %>
</tr>
Создание нового объекта:
def create
@order_item = OrderItem.new(order_item_params)
if @order_item.save
ActionCable.server.broadcast "order_channel", type: :new, body: order_item_render(@order_item)
end
end
def order_item_render(order_item)
render(partial: 'order_items/order_item', locals: {order_item: order_item})
end
Редактировать: Возможно, что-то связанное с AJAX