現在、railsを使ってチャット機能を実装しようと思い、いろいろ調べてみました。
方法はいろいろ出てきたのですが、バージョン管理の問題が原因のためか、うまく実装することができませんでした。
そこで、一つ思いついた方法は
コントローラーでデータベースを呼び出す処理をsleep使って秒ごとに更新し、ビューも同じように秒ごとに更新すればいいのでは?
と思いました。
しかしこのやり方ではおそらく動作の負担も結構かかってしまうのではないかとも思っています。
while true
user= User.all
sleep(1)
end
というようなやり方はしてはいけないものでしょうか?
Webですよね?
はい。考えていたものとしては、コントローラーとビューをそれぞれsleepで回す方法です。本来はajaxとやらを使ってやるのが一般的みたいですが…jsわからないため結構勉強コストかかりそうかなと思いましたので???? 一応Rails 5 + ActionCableで作るやり方はいくつか見てきましたが…ピンときません。
補足です。サイトを参照しながら組んでみましたが、エラーが起きてサイトの手順通り実装できず詰まってしまったためスリープを使う方法を考え出しました。
組んでみたソースとエラー内容を提示すれば改修のための助言がもらえるかもしれません。僕の場合はjavascriptのSetIntervalを使います。ajax難しいのであればsetIntervalかsetTimeOutで画面をリロードしてしまうのもひとつの手です。
なるほど。仕組みとしては、画面とコントローラーをそれぞれ秒単位でリロードをする形でも問題ないでしょうか?
一定時間リロードはjavascriptで行うので画面側のみの処理ですね。
なるほど。つまりrubyだけでやるのは論外でしょうか?(rubyのsleepがいわゆるsetTimeout的な役割だと思います)
回答1件
あなたの回答
tips
プレビュー