2012-05-10 2 views
0

하지 NilClass 때 나는 레일에정의되지 않은 방법 전무에 대한 '의 strftime는'값은 전무

<%= Time.zone.parse(e["start_time"])%> 

표시 풀 타임 스탬프 문자열을 표시하는 시간이 이상한 오류를 가지고있다. "2010-09-02 18시 0분 0초 -0500은"

<%= Time.zone.parse(e["start_time"]).strftime()%> 

내가이 예상되는 오류 지정된 인수 (1 0)를 보여줍니다. 다시, 예상했다.

<%= Time.zone.parse(e["start_time"]).strftime("%Y")%> 

오류 "NilClass 전무에 대한 정의되지 않은 방법 '의 strftime'을"보여줍니다.

그래서 내 e [ "start_time"] 필드 은 채워져 있지만 strftime()이 원하는 인수를 지정하면 Nil 값이되는 이유를 알 수 없습니다.

+0

문제가 해결되었습니다. 일부 이벤트는 Google 캘린더 API에서 시간 정보를 반환하지 않았습니다. 귀하의 의견을 살균하십시오! – samsmith

+0

또한'nil'을 리턴 할 수있는 메소드에 대해서는이 같은 불행한 사건을 유발할 수있는 메소드를 호출하지 않도록하십시오. 이러한 경우를보다 우아하게 처리 할 수있는 도우미 메서드로이 코드를 래핑하는 것이 좋습니다. – tadman

답변

1

그것은 내가 그것을 할 때 작동합니다

irb(main):005:0> Time.zone.parse("2012-04-05 12:00:02").strftime("%Y") 
=> "2012" 

도 :

irb(main):006:0> Time.zone.parse("2012-04-05 12:00:02 -0500").strftime("%Y") 
=> "2012" 

e["start_time"]의 값이 무엇입니까?

+0

2010-09-02 18:00:00 -0500 – samsmith

+1

'Time.zone.parse ("2010-09-02 18:00:00 -0500"). strftime ("% Y") => "2010" ' – Adnan

관련 문제