目次 閉じる
プロフィールに年齢を表示する
前回までで、プロフィールを表示できた
今回は、プロフィールの情報をもとに年齢を計算・表示する
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
endbirthdayが存在しないとき、「不明」と表示する
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

