现在我正在尝试制作这样的helper方法
如何将争论的日期时间与今天的日期进行比较?
def todate_datetime(date_time)
date_time = Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end
更新:
视图
<%=today_datetime(community_topic.updated_at(%>
助手
def today_datetime(date_time)
date_time == Date.today ? "<font color='red'>#{date_time.to_s(:ct)}</font>" : date_time.to_s(:ct)
end
从ruby 1.9.2开始,您可以直接比较ruby中的DateTime对象和Date对象,例如在irb:中尝试
require 'date'
today = DateTime.new(2013,1,4)
=> #<DateTime: 2013-01-04T00:00:00+00:00 ((2456297j,0s,0n),+0s,2299161j)>
today == Date.today
=> true
但是,Rails有自己的DateTime对象(APIdock Rails DateTime(。一种选择是通过to_date
方法将Rails对象转换为日期
因此,辅助方法可能看起来像这样:
def todate_datetime(date_time)
date_time.to_date == Date.today ? "<font color='red'>#{date_time}</font>" : date_time
end
EDIT:将date_time
参数与DateTime.current.to_date
进行比较可能更准确,因为如果设置了config.time_zone
,则会将其考虑在内:
def todate_datetime(date_time)
date_time.to_date == DateTime.current.to_date ? "<font color='red'>#{date_time}</font>" : date_time
end