我想计算这样的未来日期:
Date.today + 1.year
Date.today + 1.month
要确定将来日期需要为month
还是year
,我会从数据库中请求duration
。 duration
值保存为字符串。
end_date = Date.today + 1.Duration.find(order.duration_id).duration
我相信上面的代码执行如下:
Date.today + 1."year" #the quotes cause an error
如何删除引号?
答案 0 :(得分:2)
在rails 1.year
的工作方式中,:year
是1
上的实例方法。在ruby中,要评估对象的任意方法,只需使用send('method_name')
或send(:method_name)
如果您将持续时间作为字符串,则可以使用:send
来评估实际持续时间:
duration = "year"
1.send(duration) == 1.year