Hotwire:如何将广播对象的两个部分渲染到两个不同的页面上?

问题描述

对 Stimulus 和 Hotwire 比较陌生,想知道,

“有没有办法在两个不同的页面上为同一个广播对象渲染两个不同的部分?

我正在尝试将页面上的对象从一个控制器渲染并广播到具有不同样式的不同控制器的另一个页面

示例 如果我在第 <%= render @live_room.room.questions %> 页打印 live_room.html.erb 并在 <%= render @room.questions %>

中打印 show.html.erb

它们都呈现部分 _question.html.erb

我想根据页面呈现不同的设计。

有没有人遇到过这个问题或知道如何解决这个问题?我很想得到一些见解!

干杯!

解决方法

您可以指定要渲染的部分。例如,在购物车模型更新后,一个替换被广播到徽章_id,另一个被广播到购物车。每个渲染一个独特的部分。

class Cart
  ...

  after_update_commit do
    broadcast_replace_to 'badge',partial: 'carts/badge',locals: { cart: self },target: "badge_#{id}"
  end

  after_update_commit do
    broadcast_replace_to 'cart',partial: 'carts/active_cart',locals: { cart: self }
  end

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...