2011-04-29 81 views
1

我的應用程序使用日期很多。許多Ajax電話和網址涉及日期時間,我發現典型的格式'1920-10-10 18:30:00'對這些目的不友好。我通過創建一個輔助方法來解決這個問題,該方法基本上將不需要的字符從日期(192010101830)中剝離出來,另一種方法是將字符串轉換回日期對象。在rails中處理和測試日期

當我創建一個URL它是這樣的:

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

然後當thing_date行動接收,它的參數轉換回爲datetime對象

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

這工作細發展。不過,我完全接受其他建議。

問題是當我去測試我的應用程序。測試失敗,因爲date_to_string和string_to_date的幫助器方法不存在。我可以將它們包括在測試中,但我覺得應該將它們分開。

所以我在尋找
一)更好的方式是傳遞日期,更重要的是

b)測試的動作是依賴於輔助方法的方法。

回答

3

該methinks有內置的方法。

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

希望幫助..

+0

這肯定有助於我目前的狀況,但我仍然有困難分離控制器測試的輔助方法。 – 2011-04-30 03:17:44