2012-09-25 33 views
7

Moja aplikacja działa dobrze lokalnie, ale kiedy instaluję ją na serwerze produkcyjnym, otrzymuję następujący błąd z systemem rails server i prosząc strony:aplikacja szyny wyświetla komunikat "nie można załadować tłumaczeń z {ru.yml path}, która oczekuje powrotu hasła, ale nie"

ActionView::Template::Error (can not load translations from {app}/config/locales/ru.yml, expected it to return a hash, but does not). 

mam YAML tłumaczenie ru.yml:

ru: 
    clients: 
    index: 
     title: Список клиентов 

a błąd zdarza się podczas rozmowy, ex:

%h1=t '.title' 

Moja maszyna programująca działa pod kontrolą systemu Mac OS X ML

Serwer produkcyjny to CentOS 6 z zainstalowanym oprogramowaniem rvm i libyaml.

Oba serwery są na Ruby i Rails 3.2.8 1.9.2p320

+3

Co robi, gdy czytasz go ręcznie w konsoli szyn? 'YAML.load (File.open ('config/locales/ru.yml'))' –

+0

Daje mi błąd w następującym łańcuchu: 'default:% d.% M.% Y% H:% M' – lich

+1

był problem w tej linii. Dodałem cytaty: 'default: '% d.% M.% Y% H:% M'' i otrzymałem skrót. Problem rozwiązany, dziękuję! – lich

Odpowiedz

5

Operacja YAML.load(File.open('config/locales/ru.yml')) dała mi błąd w jednym z wierszy.

Dodałem cytaty: default: '%d.%m.%Y %H:%M' i otrzymałem skrót. Problem jest rozwiązany.

1

Problem jest o używaniu psych YAML silnik, który nie można analizować struny znakiem% i generuje wyjątek SyntaxError.

Zamiast tego należy użyć silnika syck. Dodaj następujący kod do końca pliku config/boot.rb

YAML::ENGINE.yamler = 'syck' 

podpowiedź: syck wymaga Ruby w wersji> = 2.0.0.