最新的Rails 3:ActionView :: Template :: Error(无法在105行第13列解析YAML)

时间:2011-02-09 10:32:30

标签: ruby-on-rails-3 yaml actionview form-for

我最近遇到了一个奇怪的问题或者Rails 3,可能是因为新的rubygems 1.5更新了。基本上当我使用乘客3.0.2将我的程序部署到nginx时,我的生产日志中立即有500页和这样的问题:


ActionView::Template::Error (couldn't parse YAML at line 105 column 13):
    10: </div>
    11: <% end %>
    12: <div class="field">
    13:     <%= f.label :name %> <%= f.text_field :name %>
    14: </div>
    15: <div class="field">
    16:     <%= f.label :password %> <%= f.password_field :password %>
  app/views/sessions/new.html.erb:13:in `block in _app_views_sessions_new_html_erb___4159562374589718885_19217640_4456777064017176818'
  app/views/sessions/new.html.erb:5:in `_app_views_sessions_new_html_erb___4159562374589718885_19217640_4456777064017176818'

看起来它在环境中缺少某些内容,因此它无法识别我的所有form_for元素。基本上该页面只是一个简单的登录页面,包含2个字段 - 名称和密码。对于具有表单的其他页面,也会出现此问题,但仅限于生产环境中。在开发环境中,它完全正常工作。我已将所有宝石升级到最新版本,包括rails 3.0.4,但这看起来与此问题并不完全相关。我也经常在我的VMware BEFORE gem 1.5上将相同的东西部署到ubuntu上,现在一切都还不错,但新部署没有回头路。

我已经将它部署到运行最新ubuntu的2台机器上,并且两台机器都有这样的错误。 Nginx和乘客按标准步骤安装。显然,有了这个问题,该网站永远无法运行。任何人都可以为此提供任何错误修复?非常感谢,如果可以的话!

PS:我写的登录页面基本上来自这里: http://railstutorial.org/chapters/sign-in-sign-out#top

3 个答案:

答案 0 :(得分:10)

我在config / boot.rb文件中添加了以下两行,问题解决了。

require 'yaml'
YAML::ENGINE.yamler= 'syck'

答案 1 :(得分:1)

我遇到了同样的问题。其实我只需要第一行:

require 'yaml'

无需专门设置YAML :: Engine。

答案 2 :(得分:0)

对于yaml语法选项(例如TextMate中的“查看/显示不可见”)的问题可能对定位语法问题非常有帮助,yaml对此非常敏感。 在我的情况下,我只需要在所有语言环境文件中用空格替换所有选项卡。 另请注意,如果您在同一级别上没有同名的节点。