我通过ActionCable传输消息,我在messages-partial中得到了这个:
- if current_user.admin?
= link_to "[x]", msg_path(msg), method: :delete, data: { confirm: "sure?"}
如果普通用户发送消息,这可以正常工作,但是当管理员发送消息时,其他普通用户会显示链接,但是当我刷新页面时,它会消失。
如何预防这个?
答案 0 :(得分:0)
您最有可能向所有人广播此消息。你需要在你的消息控制器中实现这样的东西,这样只有那个频道的订阅者才能收到它(messages_controller.rb):
def delete
if message.destroy
ActionCable.server.broadcast "messages_#{message.chatroom_id}_channel",
message_id: message.id
head :ok
end
end
同样,您需要订阅正确的频道(messages_channel.rb):
def subscribed
stream_from "messages_#{params['chatroom_id']}_channel"
end