Time_ago_in_words => "в {{count}} days."?

У меня очень странная ошибка. В моем коде есть <%= time_ago_in_words(game.created_at) %>

Он работает локально и на моем промежуточном сервере, но НЕ на моем рабочем сервере:

Пример: http://hockey-community.com/games/show/45

Я получаю "in {{count}} days."

Вряд ли, если число возвращено 1, оно работает. (ex: 1 hour ago or 1 day ago).

Любая идея была бы очень полезна. Thks

Ответ 1

Rails использовал некоторый устаревший синтаксис в помощнике, который затем был сброшен в последней версии Ruby. Если вы используете что-то вроде Heroku, попробуйте указать экземпляр вашего производства для использования Rails 2.3.9. В противном случае вы также можете попробовать понизить рейтинг Ruby.

См. журнал изменений: http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

Изменяет синтаксис с именем-интерполяции i18n от устаревшего Hello {{name}} к 1,9-родному Hello % {name}.

Похоже, что это исправит вашу проблему.

Ответ 2

Звучит так, как будто у вас нет такой же версии Ruby in Production, как и в разработке. Лично у меня все еще есть Ruby 1.8.7 в моей разработке и в Консоли, я постоянно получаю следующее сообщение, когда я использую time_ago_in_words:

Синтаксис интерполяции {{key}} в сообщениях I18n устарел. Вместо этого используйте% {key}.

Теперь это сообщение об устаревших не приходит из Rails, оно происходит от Ruby. И так как time_ago_in_words - помощник Rails, похоже, что эта функция в Rails несовместима с более поздними версиями Ruby, где это было удалено.

Итак, если вы не захотите вручную обезвредить фактический помощник (я бы не рекомендовал его), вы можете либо модернизировать Rails, либо понизить Ruby, чтобы они были совместимы.

Ответ 3

У меня была такая же проблема после недавнего добавления драгоценного камня i18n. Я нахожусь в проекте, где обновление Rails в настоящее время не является жизнеспособным вариантом. Прочитав этот пост и почти вырвав time_ago_in_words, я нашел несколько похожих сообщений.

Копирование http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml в мою конфигурацию /locales/en.yml, как предлагается здесь: time_ago_in_words issue отлично работает. Просто имейте в виду, что yml очень утончен в отношении пробелов.

Ответ 4

Это происходит со мной.

Я попытался вставить раздел "datetime:" из

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

в мой собственный en.yml, надеясь переопределить любые странные вещи. Но тогда мое приложение не запускается и жалуется на синтаксическую ошибку точно на месте вставки "datetime:". (когда я смотрю, я не могу найти эту несуществующую синтаксическую ошибку с моим единственным глазом).