※本サイトで紹介している商品・サービス等の外部リンクには、アフィリエイト広告が含まれる場合があります。
プロフィールに年齢を表示する
前回までで、プロフィールを表示できた
今回は、プロフィールの情報をもとに年齢を計算・表示する
app/models/profile.rbを開く
class Profile < ApplicationRecord
# 中略
def age
return '不明' unless birthday.present?
years = Time.zone.now.year - birthday.year
days = Time.zone.now.yday - birthday.yday
if days < 0
"#{years - 1}歳"
else
"#{years}歳"
end
end
end
birthday
が存在しないとき、「不明」と表示する
Time.zone.now
は今の時間のことTime.zone.now.year - birthday.year
をyears
に渡すyday
とは、1年の始まりから何日経過しているかが取得できるTime.zone.now.yday - birthday.yday
をdays
に渡すdays < 0
のとき(誕生日がまだ来てない)"#{years - 1}歳"
と表示するdays < 0
じゃない(else
)なら、"#{years}歳"
と表示する
#DAY24