2012-09-25 17 views
7

Ứng dụng của tôi hoạt động tốt tại địa phương, nhưng khi tôi cài đặt nó vào máy chủ sản xuất, tôi nhận được sau lỗi chạy rails server và yêu cầu trang:ứng dụng đường ray cung cấp lỗi "không thể tải bản dịch từ {ru.yml path} dự kiến ​​sẽ trả lại băm, nhưng không"

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

tôi có YAML dịch ru.yml:

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

và lỗi xảy ra trong khi gọi, ví dụ:

%h1=t '.title' 

Máy phát triển của tôi đang chạy Mac OS X ML

Máy chủ sản xuất là CentOS 6 có cài đặt rvm và libyaml.

Cả hai máy chủ đang trên Ruby 1.9.2p320 và Rails 3.2.8

+3

Bạn sẽ làm gì khi đọc nó bằng tay trong bảng điều khiển đường ray? 'YAML.load (File.open ('config/locales/ru.yml'))' –

+0

Nó cho tôi lỗi trên chuỗi sau: 'mặc định:% d.% M.% Y% H:% M' – lich

+1

Có là một vấn đề trong dòng này. Tôi đã thêm dấu ngoặc kép: 'mặc định: '% d.% M.% Y% H:% M'' và nhận băm. Đã giải quyết được sự cố, cảm ơn bạn! – lich

Trả lời

5

Thao tác YAML.load(File.open('config/locales/ru.yml')) đã cho tôi lỗi ở một trong các dòng.

Tôi đã thêm dấu ngoặc kép: default: '%d.%m.%Y %H:%M' và nhận được băm. Vấn đề được giải quyết.

1

Vấn đề là về việc sử dụng động cơ psych YAML mà không thể phân tích chuỗi với dấu% và tạo ra Lỗi Cú pháp ngoại lệ.

Sử dụng công cụ syck thay thế. Thêm mã sau vào cuối tệp config/boot.rb

YAML::ENGINE.yamler = 'syck' 

gợi ý: syck yêu cầu phiên bản Ruby> = 2.0.0.

Các vấn đề liên quan