快速的问题。如果我有一个模型,比如慈善机构,它具有start_date
和end_date
属性,我如何将其设置为控制器中的方法的current_charity
?基于时间的Rails实例变量?
我知道我必须做某种Charities.find(params[:something])
,并且将只需要设置current_charity
等于一个是start_date
为> =当前的日期,以及是谁的end_date
是< =当前日期(只有一次一个“当前”)。我通常只是通过params [:id]找到一个模型,所以这对我来说是新的。
谢谢!
我喜欢Thilo的回答比我的好。但一定要写很多单元测试!基于时间的逻辑非常棘手,很容易错过边缘情况。你可以用一个“模拟时钟”测试时间 - 在RSpec中,你可以做一些类似'Time.stub!(:now).and_return {Time.parse(“2010-01-01 12:00”)}'来欺骗你的代码认为这是不同的一天。 – AlexChaffee