該賞金過期3天。回答這個問題有資格獲得 50聲望獎勵。 daveanderson88希望引起對這個問題的更多關注。
我開始使用 hotwire/turbo 并已設定好一切。Turbo 流作業正常。
在 index.html.erb 中:
<h1>Tasks</h1>
<%= turbo_stream_from "tasks" %>
<div id="tasks">
<% @tasks.each do |task| %>
<%= render task %>
<% end %>
</div>
在 _task.html.erb 中
<%= turbo_frame_tag dom_id(task) do %>
<%= link_to 'Edit', edit_task_path(task) %>
<%= link_to 'Destroy', task, method: :delete, data: { confirm: 'Are you sure?' } %>
<hr>
<% end %>
當按預期按下銷毀按鈕時,rails 控制臺顯示:
Started DELETE "/tasks/41" for ::1 at 2021-12-14 18:40:32 0000
Processing by TasksController#destroy as TURBO_STREAM
但是當按下編輯按鈕時,rails 控制臺顯示:
Started GET "/tasks/41/edit" for ::1 at 2021-12-14 18:41:29 0000
Processing by TasksController#edit as HTML
這意味著頁面會加載一個新頁面,呈現 edit.html.erb 而不僅僅是更新 turbo_frame_tag 中的內容。
在檢查 DOM 時,編輯和銷毀鏈接都在一個 turbo-frame 內:
<turbo-frame id="task_41">
<a href="/tasks/41/edit">Edit</a>
<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/tasks/41">Destroy</a>
<hr>
</turbo-frame>
所以我的問題是,為什么請求被處理為 HTML 而不是 TURBO_STREAM ?
edit.html.erb 看起來像這樣:
<h1>Editing Task</h1>
<%= turbo_frame_tag dom_id(@task) do %>
<%= render 'form', task: @task %>
<% end %>
<%= link_to 'Show', @task %> |
<%= link_to 'Back', tasks_path %>
非常感謝!
uj5u.com熱心網友回復:
解決了:
在 application.js 中,我還有這一行:
require("turbolinks").start()
我洗掉了它,這解決了問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/387433.html
上一篇:當按下ENTER時,按鈕單擊未擊中OnPost()方法
下一篇:python上的翻譯器不作業,出現錯誤,說“BaseBlob.translate()得到了一個意外的關鍵字引數”
