Frage

Ich habe ein Rails 2.3.5-Projekt, das die Lokalisierungsfunktionen von Rails nutzt.Ich habe zufällig auch Rails 3 Beta installiert (was vom i18n-Gem abhängt).Rails 2.3.5 übernimmt problemlos die Lokalisierung selbst (ohne dass i18n installiert ist). Wenn jedoch das i18n-Gem verfügbar ist, nutzt es es.

Kürzlich habe ich meine Gems aktualisiert und habe jetzt die Versionen 0.3.7 und 0.4.0 von i18n installiert.Rails möchte natürlich die neueste Version laden und verwenden, was zu Fehlern in meinem Projekt führt.Ich habe versucht, die Gem-Version auf 0.3.7 zu setzen, um die Fehler in der Web-App zu umgehen.Allerdings verwenden wir resque und resque_mailer, um das Senden von Nachrichten zu verzögern.Wenn der Worker den Mailer-Job aus der Warteschlange aufnimmt, ignoriert er meine config.gem-Anforderung in Environment.rb und verwendet trotzdem Version 0.4.0.

Im Idealfall würde ich Rails gerne anweisen, das i18n-Juwel überhaupt nicht zu verwenden.Wie mache ich das?

Aktualisieren: Ab Beta 4 erfordert Rails 3 nun i18n Version 0.4.1.Ich verstehe nicht, warum nicht noch mehr Leute auf dieses Problem stoßen, da es jetzt den Anschein hat, dass Sie darauf stoßen werden, wenn Sie sowohl Rails 2 als auch Rails 3 installiert haben.

War es hilfreich?

Lösung

Ich habe die hier definierten Anweisungen befolgt:

http://gembundler.com/rails23.html

und es hat funktioniert.

Andere Tipps

Du könntest benutzen Bundler oder RVMs Edelsteinsets um das i18n-Juwel in Ihrer App nicht verfügbar zu machen.Oder Sie könnten Ihre Rails-App aktualisieren.

  1. Frieren Sie die Rails-Version ein: rake VERSION=2.3.5 rails:freeze:gems
  2. Korrigieren Sie die Version in der Datei Vendor/rails/activesupport/lib/active_support/vendor.rb Zeile 24 wie folgt: gem 'i18n', '>= 0.1.3', '< 0.4.0'

Oder bearbeiten Sie einfach: /usr/lib/ruby/gems/1.8/gems/activesupport-2.3.5/lib/active_support/vendor.rb

Und umdrehen gem 'i18n', '>= 0.1.3'

Hinein gem 'i18n', '0.1.3'

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top