Domanda

Ho un progetto Rails 2.3.5 che utilizza la localizzazione caratteristiche di Rails. Ho anche capita di avere Rails 3 beta installata (che dipende dalla gemma i18n). Rails 2.3.5 sarà lieto di gestire la localizzazione sul suo proprio (senza i18n installato), se la gemma i18n è disponibile, si fa uso di esso.

Recentemente ho aggiornato il mio gemme e ora hanno la versione 0.3.7 e 0.4.0 di i18n installato. Rails, naturalmente, vuole caricare e utilizzare la versione più recente che sta causando errori nel mio progetto. Ho provato a installare la versione 0.3.7 gemma che ottiene intorno agli errori nel web app. Tuttavia, stiamo usando resque e resque_mailer di ritardare l'invio di messaggi. Quando le scelte dei lavoratori fino al lavoro mailer dalla coda, si ignora la mia richiesta config.gem in environment.rb e utilizza la versione 0.4.0 in ogni caso.

Idealmente, vorrei dire a Rails non solo di utilizzare la gemma i18n a tutti. Come faccio a farlo?

Aggiornamento: Come di beta 4, Rails 3 ora richiede i18n versione 0.4.1. Io non vedo come sempre più persone non sono in esecuzione in questo problema come sembrerebbe ora se si dispone di entrambe le guide 2 e Rails 3 installato, si sta andando a correre in questo.

È stato utile?

Soluzione

Ho seguito le istruzioni come definito qui:

http://gembundler.com/rails23.html

e ha funzionato.

Altri suggerimenti

Si potrebbe usare Bundler o RVM di Gemsets per rendere la gemma i18n disponibile da dentro l'applicazione. Oppure si potrebbe aggiornare il tuo applicazione Rails.

  1. Congelare la versione rotaie: rake VERSION=2.3.5 rails:freeze:gems
  2. Fissare la versione nel file vendor / rails / ActiveSupport / lib / active_support / vendor.rb linea 24 a: gem 'i18n', '>= 0.1.3', '< 0.4.0'

O semplicemente edit: /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor.rb

e ruotare gem 'i18n', '>= 0.1.3'

In gem 'i18n', '0.1.3'

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top