質問投稿失礼いたします。
勤続年数を◯年◯ヶ月と表示させたいのですがいいアイディアが思いつきません。。。
もともとは◯年と表示されていました。
下記が現時点のコードで、一応は自分で無理やり◯ヶ月と表示させるところまでは至ったのですが、明らかに冗長で違和感しかありません。
ヒントいただけないでしょうか。。
下のコードの
def experience_months
省略
end
と
def get_month(value)
省略
end
の部分が自分で書き足して◯ヶ月と表示させたものです。
実際のコード↓
user.rb
def experience_years
get_year(start_engineer)
end
def experience_months
if get_month(start_engineer) == -1
p 11
elsif get_month(start_engineer) == -2
p 10
elsif get_month(start_engineer) == -3
p 9
elsif get_month(start_engineer) == -4
p 8
elsif get_month(start_engineer) == -5
p 7
elsif get_month(start_engineer) == -6
p 6
elsif get_month(start_engineer) == -7
p 5
elsif get_month(start_engineer) == -8
p 4
elsif get_month(start_engineer) == -9
p 3
elsif get_month(start_engineer) == -10
p 2
elsif get_month(start_engineer) == -11
p 1
else
get_month(start_engineer)
end
end
private
def get_year(value)
value.blank? ? 0 : (Date.today.strftime('%Y%m%d').to_i - value.strftime('%Y%m%d').to_i) / 10000
end
def get_month(value)
value.blank? ? 0 : (Date.today.strftime('%m').to_i - value.strftime('%m').to_i)
end
end
show.html.slim
th = User.human_attribute_name(:experience_years)
td = @user.experience_years.to_s + '年' + @user.experience_months.to_s + 'ヶ月'
今のところはModel内で現在の日時から職務スタート日を引き算しています。
この方法しか思いつかず途方に暮れています。。ヒントいただけたらと大変嬉しいです。
うまく伝わっていたら幸いです。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/14 01:48