Ruby on Rails開発のインターン (Day 23)

こんにちは、皆さん!

長い週末が終わり、また職場に戻ってきた。最近なぜかわからないが、マネージャーともう一人のディベロッパが全く連絡を取り合わないからやることリストも更新されていなくて、少し心配だ。すぐに対処してくれるといいが。


  • トピック:
  1. オートログアウトの仕組み


  • 疑問:


  • 問題:
  1. GeocoderがAPIキーの問題でデータベースにデータを足すのを拒否してくる


  • 学習した内容:
  1. Railsでオートログアウトを実行する方法


  • 今後やってみたいこと:


  • リソース:


オートログアウトの仕組み

通常セキュリティーの関係でユーザーがある程度の時間オフラインになったらアカウントからサインアウトするオートサインアウトを実行しているウェブサイトは結構ある。で、このRailsにおけるこれのやり方は意外にも普通の数学のように計算をして行われている。

最初にユーザーが戻ってきたときにその前にオンラインだったのが何分前なのかを知る必要があるからユーザーがオンラインになった時の時間をまずは記録する。下記のようにね。

session[:active_time] = Time.now

毎回ユーザーがオンラインになるたびにこの時間を更新するんだぞ

その後、ユーザーがアクティブになった時に下記のような計算をすることでいったいどれだけの時間がたったのかがわかる。

time = Time.now.to_time - session[:active_time].to_time

Time.nowはその時の時間を返してきてくれて、session[:active_time]は過去のユーザーがアクティブだった時間を返してくれる。つまり、この二つの値をもとに最後にアクティブだった時からどれだけ経ったのかを計算できる。

最後にすることは、これを自分の指定したい長さの時間と比べればよい。例えば、三十分後にオートサインアウトしてほしいのなら

if time > 30.minutes
  log_out
end


まとめ

テストしたときはマップはうまくいってないと思っていた。しかし、ローカルとテストで使われているマーカーの種類が違うだけでマップの中心に来るはずだと思っていたマーカーは元から存在していなかったのだ(笑)。
とりあえず、今、マーカーは問題ないことが分かったが、なぜかgeocoder曰く、APIキーにブロックされて新しいマーカーのデータをデータベースに足すことができない。
クレジットカードをAPIキーに登録しないといけないのかな?
今のところ、これへの対処法はわからないな。


ご精読ありがとうございました。では、また次回まで✌



Day 24はこちら↓↓
programming-shop.hatenablog.com


Day 22はこちら↓↓
programming-shop.hatenablog.com