在rails中使用和测试日期

时间:2011-04-29 22:54:02

标签: ruby-on-rails datetime rspec

我的应用程序使用了很多日期。许多ajax调用和url涉及日期时间,我发现典型的格式'1920-10-10 18:30:00'对这些目的不友好。我通过创建一个帮助方法来解决这个问题,该方法基本上剥离了日期之外的不必要的字符(192010101830),以及另一种将字符串转换回日期对象的方法。

当我建立一个网址时,它会像这样:

=link_to "Send Date", thing_my_date_path(date_to_string(DateTime.now))

然后当thing_date动作收到时,它将参数重新转换回日期时间对象

def my_date
  @date = string_to_date(params[:mydate])
  ....
end

这在开发中很好用。但是我完全接受其他建议。

问题是当我去测试我的应用程序时。测试失败,因为date_to_string和string_to_date的辅助方法不存在。我可以将它们包括在测试中,但我觉得它们应该分开。

所以我在寻找 a)更好的方式来传递日期,更重要的是

b)测试依赖于辅助方法的动作的方法。

1 个答案:

答案 0 :(得分:3)

有这种方法的内置方法。

> DateTime.now.to_s(:number)
=> "20110429162748" 
> DateTime.parse("20110429162748")
=> Fri, 29 Apr 2011 16:27:48 +0000 

希望有所帮助..