从ActionCable提交表单按钮不起作用

时间:2019-02-12 17:23:42

标签: javascript ruby-on-rails ajax websocket actioncable

我正在使用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相关

0 个答案:

没有答案