9

我的应用程序在本地运行良好,但是当我将其安装到生产服务器时,运行rails server和请求页面时出现以下错误:

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

我有 YAML 翻译 ru.yml:

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

调用时发生错误,例如:

%h1=t '.title'

我的开发机器正在运行 Mac OS X ML

生产服务器是安装了 rvm 和 libyaml 的 CentOS 6。

两台服务器都在 Ruby 1.9.2p320 和 Rails 3.2.8 上

4

2 回答 2

5

操作YAML.load(File.open('config/locales/ru.yml'))给了我其中一条线的错误。

我添加了引号:default: '%d.%m.%Y %H:%M'并得到了一个哈希值。问题解决了。

于 2012-12-11T10:56:54.103 回答
1

问题在于使用psychYAML 引擎无法解析带有 % 符号的字符串并生成 SyntaxError 异常。

改用syck引擎。将以下代码添加到config/boot.rb文件末尾

YAML::ENGINE.yamler = 'syck'

提示:syck 需要 Ruby 版本 >= 2.0.0。

于 2012-11-22T15:54:38.310 回答