👍 Лучший паттерн для Hotwire-приложений
🟠 Создаём компонент для отображения
🟠 Когда бэкенд что-то делает, используем turbo_stream, чтобы перерисовать компонент с новыми данными
🟠 То же самое работает, когда модель обновляется через Turbo Streams из фонового задания (ActiveJob).
Но можно вообще просто добавить broadcasts_refreshes в модель. Всё будет автообновляться само.
def create
@room = Current.organization.rooms.find_slugged!(params[:room_id])
@room.generate_introduction_email_later!
drafter = Rooms::FollowUp::IntroductionDrafter.new(room: @room, loading: true)
render turbo_stream: turbo_stream.replace(drafter.id, drafter)
end
👉Новости 👉Платформа