2013-05-19 4 views
0

Heroku/PostgreSQL은 strftime을 지원하지 않습니다. strftime를 사용하지 않고 옵션은 무엇왜 Heroku는 strftime을 좋아하지 않습니까?

@event.date_start.strftime("%B #{@event.date_start.day.ordinalize}") 

: 그래서, 내가 좋아하는 뭔가를 변환 할 경우?


편집 :

가 여기 내 Heroku가 오류 로그입니다. 그것은 내 dev에 환경에서 SQLite는에서 잘 작동 한, strftime에 걸림돌 것 :

2013-05-19T15:51:07.001968+00:00 app[web.1]: ActionView::Template::Error (undefined method `strftime' for nil:NilClass): 
+0

당신이 무엇을 출력 당신이 원하는대로, 보이는 방법. 예를 들다. –

+0

"Heroku"또는 "postgres"라고 생각하지 않습니다. 시도 할 때 Heroku 명령 줄에서 같은 코드가 작동합니다. –

+0

'@ event.date_time.respond_to? : strftime'과 @ event.date_start.respond_to? : day' (의미 : 속성 getter를 재정의하지 않았습니까?) – DMKE

답변

3

문제는 @event가없는 것을있는 date_start :

2013-05-19T15:51:07.001968+00:00 app[web.1]: ActionView::Template::Error (undefined method `strftime' for nil:NilClass) 

위의 오류가 strftime가되는 것을 의미 귀하의 경우에는 nil 개체에서 호출되며 @eventdate_start입니다.

이벤트 레코드에 항상 date_start이 있으면 문제가있는 것을 업데이트하거나 삭제하십시오.
그렇지 않으면 try를 사용할 수 있습니다

@event.date_start.try(:strftime, "%B #{@event.date_start.day.ordinalize}") 
+0

흠, 좋습니다. 그러나 나는 왜 Heroku에 push하기 전에 strftime이 잘 설정되어 있는지 알 수 없다. (Ruby 콘솔에서 같은 코드를 실행해도 문제가 없다.) – matski

+1

이것은 데이터베이스에 저장된 레코드와 관련이 있습니다. 그래서 귀하의 개발 데이터베이스에 기록이 잘되지만 Heroku에서 하나 이상의 이벤트 기록에 해당 필드가 올바르게 저장되지 않았습니다. 'heroku run rails console'과'Event.where ("date_start is null")'을 실행하여 나쁜 레코드를 찾으십시오. –

+0

고마워 mind.blank - 데이터가없는 하나의 레코드 (첫 번째 레코드)가 있었고 나머지는 던지고있었습니다! – matski

관련 문제