3

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

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

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

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

他们都渲染了部分_question.html.erb

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

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

干杯!

4

1 回答 1

2

您可以指定要渲染的部分。例如,在购物车模型更新后,一个替换被广播到 badge_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
于 2021-02-03T15:09:11.343 回答