Faire un chat avec RoR et ActionCable

Bonjour,

je suis entrain de faire un chat avec ror mais ca me semble assez compliqué de faire du realtime. Mais avec rails 5 actioncable j’arrive a faire quelque chose de plutôt cool mais le problème c’est que je n’arrive pas à enregistrer le name de user avec Devise, c’est a dire au niveau de chat_channel.rb

ApplicationController.render(
      partial: 'messages/message',
      locals: {
        message: message,
        username: #####là je ne peux pas faire current_user.prenom + " " + current_user.nom
      })

Et apres jai un probleme avec heroku en gros le chat ne marche plus du tout pourtant actioncable marche mais c’est pas le plus important car jai pas encore fini mon site :)
Merci

Peux-tu nous communiquer les log que tu obtiens lors de l’erreur (soit en regardant tes log en local soit en utilisant heroku logs) ? stp

Could not execute command from {"command"=>"message", "identifier"=>"{\"channel\":\"ChatChannel\"}", "data"=>"{\"message\":\"dw\",\"action\":\"speak\"}"}) [NameError - undefined local variable or method `current_user' for #<ChatChannel:0x007fce37308330>
Did you mean?  current_prenom]: /Users/shun/Documents/Site/app/channels/chat_channel.rb:33:in `render_message' | /Users/shun/Documents/Site/app/channels/chat_channel.rb:23:in `speak' | /Users/shun/.rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.beta3/lib/action_cable/channel/base.rb:251:in `public_send' | /Users/shun/.rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.beta3/lib/action_cable/channel/base.rb:251:in `dispatch_action' | /Users/shun/.rvm/rubies/ruby-2.3.0/lib/ruby/gems/2.3.0/gems/actioncable-5.0.0.beta3/lib/action_cable/channel/base.rb:163:in `perform_action'

En parallèle, tu peux regarder ce tutoriel : https://www.zweitag.de/en/blog/technology/lets-build-a-chat-with-actioncable

1 « J'aime »

Bonjour,
J’ai un autre probleme, enfaite j’ai un nav-tabs de bootstrap avec 3 “#” different.
et j’aimerai que par exemple localhost:3000/chat#chat1 stream sur chat1 et localhost:3000/chat#chat2 stream sur chat2.

def subscribed 
    if $emaildata 
        Online.create(:userOnline => $emaildata) 
    end 
    stream_from "messages"
end 

pour l’instant jai cela.
Merci

Human Coders - Le centre de formation recommandé par les développeur·se·s pour les développeur·se·s