2009-08-24 2 views
0

Datamapper를 ORM으로 사용하여 첫 번째 프로젝트를 작성하므로 잠시 기다려주십시오. :) Datamapper DateTime to String 동작

나는 날짜 시간 필드에서 문자열을받을 수 있나요하려고 :

Error.first.submitted_at.to_s => "2009-08-24T12 : 13 : 32 + 02 : 00"

반환 된 문자열이 좋지 않습니다.

Error.first.submitted_at.to_s (: only_date) 액티브 나는 그런 일을 할 수

또는 다른 날짜 포맷. DataMapper에서 somethig를 사용할 수 있습니까? 아니면 strftime 메서드를 사용해야합니까?

답변

1

이것은 AcitveSupport를 사용하여 사용할 수있는 기능입니다. 그것을 얻으려면 require 'activesupport'을 할 수 있습니다. 그것은 과잉일지도 모른다. 또한 같은 일을 Facets에서 #stamp를 사용할 수 있지만 그것은 당신이 :only_date 형식으로 설정해야합니다 : 당신이 정말로 to_s 방법을 사용하려면

require 'facets/date' 

Date::FORMAT[:only_date] = '%d.%m.%y' # For Date objects 
Time::FORMAT[:only_date] = '%d.%m.%y' # For DateTime objects 

d = DateTime.now 
d.stamp(:only_date) # => "24.08.09" 

을, 당신도 그렇게 할 수 있습니다

require 'facets/date' 

Date::FORMAT[:only_date] = '%d.%m.%y' # For Date objects 
Time::FORMAT[:only_date] = '%d.%m.%y' # For DateTime objects 

class DateTime 
    alias :default_to_s :to_s 
    def to_s(format=nil) 
    if format.nil? 
     default_to_s 
    else 
     stamp format 
    end 
    end 
end 

d = DateTime.now 
d.to_s(:only_date) # => "24.08.09"  
+0

글쎄, 나는 DataMapper가 어떻게 든 그것을 지원하기를 바랍니다. 내 구현으로 to_s DateTime 클래스를 확장합니다. 감사. – Sebastian