LoginSignup
0
0

More than 3 years have passed since last update.

rubyで24時間過ぎたらアウトになる有効期限設定がしたい

Last updated at Posted at 2019-10-16

概要

updated_atが24時間過ぎていたら更新できないよーっていう設定がしたかったのでメモ感覚でまとめました

環境

Ruby 2.6.1
Rails 5.2.3
Docker

DateTime.now

(DateTime.now - hoge.updated_at) > 1

でいけるっしょって思ってやってみたら expected numericエラー
あらまぁ ちゃんとフォーマット指定しないとだめっぽい

というわけで

time = (DateTime.now).strftime("%Y/%m/%d %H:%M:%S")
user = hoge.updated_at.strftime("%Y/%m/%d %H:%M:%S")
raise "sugiteruyo-" if ((time.to_time - user.to_time) / 60 /60 /24).to_i >= 1

datetime型の値をstrftimeで整形して変数に入れて DateTime.nowuserを引いて時間を修正して1日(24時間)過ぎていたらアウトって感じしました。

まとめ

フォーマット指定は大事
もし間違えてたり、こっちのがいいよーってのがございましたら教えていただけると幸いです!!!

追記(2019-10-16 21:36:35)

@github0013@githubさんと@hogushi12兄貴のおかげでむちゃくちゃ簡単にできました
スクリーンショット 2019-10-16 21.34.42.png

コメント参照

raise "更新後、24時間以上経過" if Model.updated_at < 1.day.ago
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0