2016-11-15 6 views
1

я передаю сообщение через ActionCable и я получил это в сообщениях нечастичных:ActionCable Проблемы с тем, если заявлением

- if current_user.admin? 
    = link_to "[x]", msg_path(msg), method: :delete, data: { confirm: "sure?"} 

Если обычный пользователь отправляет сообщение это работает отлично, но когда администратор отправляет один, другие обычные пользователи получают ссылку, но когда я обновляю страницу, она исчезает.

Как предотвратить это?

+0

Вы можете показать .admin? метод? – Gaston

+0

Это просто атрибут 'user'. Если это правда, тогда пользователь является администратором. – Max

+0

Вы уверены, что код не дублируется? change link_to "[x]", to link_to "TEST", чтобы увидеть, видят ли обычные пользователи новый текст – Gaston

ответ

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 
+0

Я сделал точно то же самое – Max