这是一个非常简单的问题。我有以下代码:
def age_color
age = Time.now() - created_at
age_color = 'green' if age < 2.days
age_color = 'yellow' if age >= 2.days && age <= 5.days
age_color = 'red' if age > 5.days
end
无论如何都不能正常工作。我觉得它很难看,让我想起了我的PHP日子。我怎样才能更优雅地写出来?它绝不能是零。
答案 0 :(得分:1)
您可以使用case:
age_in_days = (Time.now() - created_at).days
age_color = case age_in_days
when 0..1: 'green'
when 2..5: 'yellow'
else 'red'
end
日期方法:http://as.rubyonrails.org/classes/ActiveSupport/CoreExtensions/Numeric/Time.html#M000322
答案 1 :(得分:1)
您的构造不起作用,因为您按错误顺序排列。试试这个
def age_color
if created_at < 5.days.ago then 'red'
elsif created_at > 2.days.ago then 'green'
else 'yellow'
end