在 Rails 中使用和测试日期
我的应用程序经常使用日期。很多 ajax 调用和 url 都涉及日期时间,我发现典型的格式“1920-10-10 18:30:00”对于这些目的不友好。我通过创建一个辅助方法来解决这个问题,该方法基本上从日期中删除不必要的字符(192010101830),并创建另一种将字符串转换回日期对象的方法。
当我构建一个 url 时,它会像这样:
=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) 一种测试依赖于辅助方法的操作的方法。
My application uses dates a lot. A lot of ajax calls and urls involve datetimes and I find the typical format '1920-10-10 18:30:00' to be unfriendly for these purposes. I work around this by creating a helper method that basically strips the unnecessary characters out of the date (192010101830) and another method for converting the string back in to a date object.
When I build a url it goes something like this:
=link_to "Send Date", thing_my_date_path(date_to_string(DateTime.now))
Then when the thing_date action receives, it converts the parameter back in to a datetime object
def my_date
@date = string_to_date(params[:mydate])
....
end
This works fine in development. However I am completely open to other suggestions.
The problem is when I go to test my application. Tests fail because the helper methods for date_to_string and string_to_date are not present. I could include them in the tests but I feel like they should be kept separate.
So I'm looking for
a) a better way to pass dates around, and more importantly
b) a method of testing an action that is dependent on helper methods.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为有一些内置的方法。
希望有帮助..
There are built-in methods for that methinks.
Hope that helps..