Hotwire Turbo не заменяет турбо-рамку
У меня есть форма
<turbo-frame id="goals">
<form action="/add_goal">
<label for="goal_name">Goal Name</label>
<input type="text" id="goal_name" name="goal_name" placeholder="Goal name..">
<input type="submit" value="Add Goal">
</form>
</turbo-frame>
что я хочу заменить.
В ответ я отправляю 303 и возвращается "Location: /added_goal" и "/ added_goal"
<html>
<body>
<turbo-frame id="goals">
OK!
</turbo-frame>
</body>
</html>
Turbo устанавливает src на турбо-кадр, но не заменяет содержимое.
1 ответ
Ответ вашего сервера может быть неправильно отформатирован. Учитывая ваш HTML, внешний интерфейс Turbo будет ожидать что-то вроде следующего:
<turbo-stream action="replace" target="goals">
<template>
<div>
This div will replace the existing element with the DOM ID "goals".
</div>
</template>
</turbo-stream>
См. Turbo docs , фрагмент кода адаптирован оттуда.
Неясно, есть ли у вас эта проблема, но вы должны убедиться, что ваш сервер отвечает типом контента.
text/vnd.turbo-stream
. Если заголовок типа контента неверен, не имеет значения, правильно ли отформатирован HTML.