前提
macOS Catalina
バージョン10.15.5
rails Rails 6.0.3.2
自動更新機能について実装を知っていること。
今回は私が疑問を解決できた部分に焦点を当てている。
目的
自動更新時に最後のメッセージをページに反映させるときの注意点を記し再発防止に努める。
本文
A、Bの2つの画面があったときにAに投稿されたメッセージがBにも自動で反映されるようにしたい。
以下のコードを書いたとする。
last_message_id = params[:id]
これで最新のメッセージを自動更新時する際に必要なidをつけれる。
ただし問題が一つある。それは、まだ何も投稿していないときに反映されないのです。
理由はlastがあるのは前提として先に投稿されたものがあることでしか使えないためです。
ズレが起きてしますのでを防ぐために以下のようにします。
last_message_id = params[:id].to_i
.to_iでメッセージが書かれたデータを数字に変換して管理している。これによりコンピューターは0から始まるから、1番目の最後のメッセージ=最初から2番目のメッセージだけでなく、0番目の最後のメッセージ=最初のメッセージも取得できる。