2012-09-25 5 views
7

La mia applicazione funziona bene localmente, ma quando sto installandolo sul server di produzione, ottengo il seguente errore in esecuzione rails server e la richiesta di pagina:rails app dà errore "Impossibile caricare le traduzioni da {ru.yml path} si aspetta che restituisca un hash, ma non"

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

ho YAML traduzione ru.yml:

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

e errore si verifica durante la chiamata, ad esempio:

%h1=t '.title' 

Il mio computer di sviluppo è in esecuzione Mac OS X ML

Il server di produzione è CentOS 6 con rvm e libyaml installati.

Entrambi gli assistenti sono su Ruby e Rails 3.2.8 1.9.2p320

+3

Cosa fa quando lo leggi a mano nella console di rails? 'YAML.load (File.open ('config/locales/ru.yml'))' –

+0

Mi dà errore sulla seguente stringa: 'default:% d.% M.% Y% H:% M' – lich

+1

Là era un problema in questa linea. Ho aggiunto le virgolette: 'default: '% d.% M.% Y% H:% M'' e ottenuto un hash. Problema risolto, grazie! – lich

risposta

5

L'operazione YAML.load(File.open('config/locales/ru.yml')) mi ha dato l'errore in una delle righe.

Ho aggiunto le citazioni: default: '%d.%m.%Y %H:%M' e ho ottenuto un hash. Problema risolto.

1

Il problema è di usare il motore psych YAML che non può analizzare le stringhe con il segno% e genera eccezioni SyntaxError.

Utilizzare invece il motore syck. Aggiungere il seguente codice alla fine del file di config/boot.rb

YAML::ENGINE.yamler = 'syck' 

suggerimento: syck richiede Rubino versione> = 2.0.0.