2016-07-20 2 views
1

레일 4에서 SQLite DB에서 가져온 날짜/시간을 포맷하려고합니다. 모델에서 작업하고 있지만 객체 클래스가 매우 이상하게 작동하고 있습니다.Rails 4에서 DateTime이 nil로 표시되었습니다.

내가 입력 한 경우 : Duration <%= micropost.duration %>

그런 다음 전체 날짜를 인쇄합니다. 나는 단지 시간을 원한다.

내가 입력 한 경우 : 이 Duration <%= micropost.duration.strftime("%H:%M:%S") %>

가 나는 오류를 얻을 : 무기 호에 대한 undefined method은 strftime 'NilClass`

그래서 내가 입력하십시오 : Duration <%= micropost.duration.class %>

하고 유형을 반환합니다 : ActiveSupport::TimeWithZone

때로는 형식을 인식하는 것처럼 보일 때가 있습니다. 이 문제를 해결하기 위해 IRB에서 strftime("%H:%M:%S") 방법이 효과적입니다.

비슷한 문제가 How to format time and date from db:datetime record in Rails 4에서 발생했지만 그 해결책이 작동하지 않았습니다. 나는 올바른 곳을보고 있는가?

+0

마이크로 포스트가 루프 안에 있습니까? – power

답변

1

나는 당신이 loop 내부에서 그것을 시도하고 micropost duration이 nil이라고 생각한다. 이것을 사용해보십시오

Duration <%= micropost.duration.strftime("%H:%M:%S") if micropost.duration.present? %> 
+0

예. 그것이 문제였습니다. 아무 래도 제 시드 데이터가 타임즈를 채우지 않습니다. 감사! – MikeK

관련 문제