表单包含销毁按钮
<%= button_to 'bomb', message, method: :delete, form: { data: { turbo_confirm: 'R U sure?' } } %>
控制器以预期的方式响应
respond_to do |format|
format.turbo_stream
[logging: ]
[ActionCable] Broadcasting to Z2lkOi8vc2V2ZW4vUm9vbS8x: "<turbo-stream action=\"remove\" target=\"message_12\"></turbo-stream>"
但是,在控制台中:
> Message.last.destroy
Message Destroy (0.4ms) DELETE FROM "messages" WHERE "messages"."id" = $1 [["id", 15]]
TRANSACTION (6.0ms) COMMIT
Room Load (0.6ms) SELECT "rooms".* FROM "rooms" WHERE "rooms"."id" = $1 LIMIT $2 [["id", 1], ["LIMIT", 1]]
[ActionCable] Broadcasting to Z2lkOi8vc2V2ZW4vUm9vbS8x: "<turbo-stream action=\"remove\" target=\"message_15\"></turbo-stream>"
=>
#<Message:0x000000010fcc9da8
id: 15,
room_id: 1,
content: "and this?",
created_at: [...]
updated_at: [...]
不会影响浏览器,实际上日志中没有注册任何内容。刷新浏览器确实会根据数据库对象重置一些东西。
这是运行 rails 7.0.1 和 ruby 3.1.0。
产生这种意想不到的行为的错误是什么?