2016-11-15 7 views
1

私はActionCable介してメッセージを送信していると私は、部分的なメッセージ-にこれを得た:通常のユーザーは、これが正常に動作し、メッセージを送信した場合ActionCable問題if文

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

が、管理者は1、送信するとき他の通常のユーザーはリンクを表示しますが、ページをリフレッシュすると表示されなくなります。

これを先取りするには?

+0

.adminを表示できますか。方法? – Gaston

+0

これは単に 'user'の属性です。それが本当であれば、ユーザーはadminです。 – Max

+0

コードは重複していませんか? link_to "[x]"を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