2010-12-02 2 views
10

나는 아주 이상한 버그가 있습니다. 내 코드에서 나는 그것은 내 프로덕션 서버에 로컬로 내 준비 서버에 있지만 작동 것 <%= time_ago_in_words(game.created_at) %>time_ago_in_words => "{{count}} 일 안에 있습니다."

있습니다

예 : http://hockey-community.com/games/show/45

나는 경우, "in {{count}} days."

이상하게 얻을 반환 된 숫자는 1입니다. (예 : 1 hour ago or 1 day ago).

어떤 아이디어라도 도움이 될 것입니다. Thks

+0

어떤 버전의 레일스입니까? 'created_at' 값이 제정신인지 확인 했습니까? – Matchu

+0

2.3.8, 동일한 데이터베이스로 내 로컬을 테스트하므로 동일한 형식을 가지고 있습니다. 나는 그것이 영웅 문제가 아닌지 궁금해. Thks – Alextoul

+1

나는 똑같은 문제가있다. 어제는 모든 것이 잘 작동했지만 오늘은 Rails와 Rails, 모든 보석들뿐만 아니라 내 Windows도 재설치했습니다 ... 그리고 나서 Heroku에서 내 응용 프로그램 DB를 가져 와서 ... "{{count}}") – sNiCKY

답변

13

레일즈는 도우미에서 사용되지 않는 신택스를 사용하고 있었는데, 헬퍼가 최신 루비 버전으로 삭제되었습니다. Heroku와 같은 것을 사용한다면 Rails 2.3.9를 사용하도록 프로덕션 인스턴스에 알려주십시오. 그렇지 않으면 Ruby를 다운 그레이드 할 수도 있습니다.

가 변경 로그를 참조하십시오 :에서 http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

변경 국제화 명명 된 보간 구문을 사용되지 않는 안녕하세요 {{이름}} 1.9 네이티브 안녕하세요 % {이름}-.

문제가 해결 될 것 같습니다.

+0

고마워요. 작동 중입니다. 또한 Rails 3로 더 쉽게 이동할 수 있도록 도와줍니다. – Alextoul

0

이것은 나에게 일어나고 있습니다. 어떤 이상한 물건을 무시 희망, 내 자신의 en.yml에

https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en-US.yml

에서 섹션

는 내가 "날짜"를 삽입했습니다. 그런데 내 앱이 시작되지 않고 "datetime :"이라는 삽입 지점에서 구문 오류에 대해 정확히 불평합니다. (내가 볼 때 나는 단 하나의 눈으로 그러한 문법적 오류를 발견 할 수 없다).

+0

스머지, 너 어디 맞아! 나는 레일스 2.3.9로 전환했고, 다시해야 할 일들이 진행 중이다. – kitschmaster

2

개발 과정에서 Ruby와 동일한 버전의 Ruby를 사용하지 않는 것 같습니다.

는 국제화 메시지에 {{키}} 보간 구문

을되지 않습니다 : 개인적으로 나는 아직도 내가 time_ago_in_words를 사용할 때 나는 항상 다음과 같은 메시지가 내 개발과 콘솔에 루비 1.8.7이있다. 대신 % {key}를 사용하십시오.

이 메시지는 Rails에서 가져온 것이 아니며 Ruby에서 가져온 것입니다. 그리고 time_ago_in_words는 Rails 도우미이므로 Rails의이 기능이 제거 된 이후 버전의 Ruby와 호환되지 않는 것 같습니다.

실제 헬퍼를 수동으로 원숭이 패치를하고 싶지 않으면 (필자는 권장하지 않습니다) 레일스를 업그레이드하거나 루비를 호환 가능하도록 다운 그레이드 할 수 있습니다.

2

최근에 i18n 보석을 추가 한 후에도 동일한 문제가있었습니다. 현재 레일 업그레이드가 현재 실행 가능한 옵션이 아닌 프로젝트를 진행 중입니다. 이 게시물을 읽고 거의 time_ago_in_words를 리핑 한 후에 여러 비슷한 게시물을 발견했습니다.

여기에 나와있는대로 http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml을 내 config/locales/en.yml에 복사하십시오. time_ago_in_words issue은 훌륭했습니다. yml이 공백에 대해 매우 까다 롭다는 것을 명심하십시오.