2010-12-02 18 views
10

Tengo un error muy extraño. En mi código que tengo <%= time_ago_in_words(game.created_at) %>time_ago_in_words => "en {{count}} días."?

Se trabaja a nivel local y en mi servidor de ensayo, pero no en mi servidor de producción:

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

consigo "in {{count}} days."

Extrañamente, si el número devuelto es 1, funciona. (por ejemplo: 1 hour ago or 1 day ago).

Cualquier idea sería muy útil. Thks

+0

¿Qué versión de Rails? ¿Has comprobado que el valor 'created_at' está en su sano juicio? – Matchu

+0

2.3.8, pruebo mi local con la misma base de datos así que created_at tiene el mismo formato. Me pregunto si no es un problema heroku. Thks – Alextoul

+1

Tengo el mismo problema. Ayer todo funcionaba bien, pero hoy volví a instalar mi Windows, así como Ruby con Rails y todas las gemas ... Luego saqué el db de mi aplicación de Heroku y ... veo "{{count}}" en todas partes:) – sNiCKY

Respuesta

13

Rails estaba usando alguna sintaxis obsoleta en el asistente que luego se eliminó en la última versión de Ruby. Si está utilizando algo como Heroku, intente indicarle a su instancia de producción que utilice Rails 2.3.9. De lo contrario, también puedes probar la degradación de Ruby.

Ver la lista de cambios: la sintaxis de interpolación llamado http://weblog.rubyonrails.org/2010/9/4/ruby-on-rails-2-3-9-released

Cambios i18n de la obsoleta Hola {{nombre}} al 1,9% nativa Hola {nombre}.

Parece que esto puede solucionar su problema.

+0

Muchas gracias, está funcionando. Además, me ayudará a pasar a Rails 3 más fácilmente. – Alextoul

0

Esto me está sucediendo a mí.

he intentado insertar la "fecha y hora:" sección de

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

en mi propia en.yml, con la esperanza de anular cualquier materia extraña. Pero luego mi aplicación no se inicia y se queja de un error de sintaxis exactamente en el momento de la inserción "datetime:". (cuando miro no puedo localizar ese error de sintaxis inexistente con mi único ojo).

+0

Mancha, ¡tenías razón! Cambié a los carriles 2.3.9 y las cosas están funcionando como deberían. – kitschmaster

2

Me parece que no tiene la misma versión de Ruby en Producción que en Desarrollo. Personalmente todavía tengo Rubí 1.8.7 en mi desarrollo y en la consola, que constantemente sale el siguiente mensaje cuando uso time_ago_in_words:

La clave {{}} sintaxis de interpolación en los mensajes I18n está en desuso. Por favor use% {key} en su lugar.

Ahora este mensaje sobre obsoleto no viene de Rails, viene de Ruby. Y dado que time_ago_in_words es un ayudante de Rails, parece que esta característica en Rails no es compatible con las versiones posteriores de Ruby donde se ha eliminado.

De modo que, a menos que desee manualmente aplicar el parche al asistente real de alguna manera (no lo recomendaría), puede actualizar Rails o degradar Ruby para que sean compatibles.

2

Tuve el mismo problema después de agregar recientemente la gema i18n. Estoy en un proyecto donde la actualización de Rails no es actualmente una opción viable. Después de leer esta publicación y casi arrancar time_ago_in_words, encontré varias publicaciones similares.

Copiando http://gist.github.com/rails/rails/blob/master/actionpack/lib/action_view/locale/en.yml en mi config/locales/en.yml como se sugiere aquí: time_ago_in_words issue funcionó muy bien. Solo ten en cuenta que yml es muy quisquilloso con el espacio en blanco.