4

現在オンラインになっているすべてのユーザーの記録を作成しようとしています。

これが私が試したことです:

  • 私の「main_controller」では:

    channel.on('connect') { puts "ON"; store._online_users << Volt.current_user.to_h } channel.on('disconnect') { puts "OFF"; store._online_users.delete(Volt.current_user.to_h) }

私の「main.html」では:

  {{store._online_users.each do |user| }}
    {{user.to_h}} <br>
  {{end}}

問題は、これをテストしたある時点で、store._online_usersリストに約 10 個のエントリが表示されたことです。それらをすべて削除したいのですが、うまくいきません。私はもう試した:

  • store._online_users.clear 効果はありません
  • store._online_users.each(&:destroy) 無効
  • store._online_users = [] 無効

編集

したがって、最初にこの質問を投稿して以来、Volt.current_user誰かが認証システムを介してログインしていない限り、それはゼロであることに気付きました。

私の にはまだ削除できないレコードの問題があるstore._online_usersので、別のキーを試しています。

私は次のことを試しましたが、store._current_users常に空のままです:

  channel.on('connect') {
    Volt.current_user.then { |user|
      unless user.nil?
        store._current_users << user
      end
    }
  }
  channel.on('disconnect') {
    Volt.current_user.then { |user|
      unless user.nil?
        store._current_users.delete(user)
      end
    }
  }

現在オンラインのすべてのユーザーを含む ModelArray を作成するにはどうすればよいですか?

4

0 に答える 0