2013-06-05 2 views
0

메시지를 게시 할 때 시간이 올바르게 표시됩니다 (원하는 시간대). 브라우저를 새로 고침하면 시간이 왜곡됩니다. 콘솔과 DB 테이블을 확인한 결과 더욱 혼란스러워졌습니다. 둘 다 로컬 및 Heroku 환경을 확인했습니다.레일즈 애플리케이션에서의 이상한 동작

enter image description here enter image description here이 가 현재 설정

: application.rb

config.time_zone = 'Seoul' 

config.active_record.default_timezone = 'Seoul' 

에서

Heroku가 콘솔에

,

heroku config:add TZ="Asia/Seoul"

인가 내가 고쳐야 할게있어?

내가 application.rb에서 시간대 설정을 삭제하고, 지금 Time.now = 0900 Time.zone.now = 00 업데이트 : 00

post 상관없이에 따르면, 구성 파일에서 시간대를 설정하는 방법은 DB가 항상 UTC 시간대를 사용합니까?

+0

Rails에서 datetime은 DB에 UTC로 저장됩니다. 기록에서 시간은 실수로 현지 시간으로 저장됩니다. 따라서 실제로는 현지 시간 임에도 불구하고 표시 할 때 9 시간이 추가됩니다. "config.active_record.default_timezone = 'Seoul'"을 제거하십시오. – kengo

+0

DB의 시간대가 맞지 않는 것 같지만 application.rb에서 시간대 설정을 삭제하면 문제가 아직 해결되지 않았습니다. –

+0

애플리케이션의 사용자 설정에 따라 time_zones를 설정하고 있습니까? 시간대는 때로는 엉덩이의 고통입니다) – nzifnab

답변

0

이 문제가 해결되었습니다.

heroku config:add TZ="Asia/Seoul" 

config.time_zone = 'Seoul' 

config.active_record.default_timezone = :local 

다음 application.rb 에, Time.zone.now == Time.now는

나중에 세부 사항이 업데이트됩니다.