应用程序崩溃是因为助手utf-8编码中的语法错误

时间:2010-10-31 11:01:52

标签: ruby-on-rails ruby-on-rails-3 heroku

我正在使用heroku来部署我的应用程序(rails 3)。好的,我通常会做git commitgit push heroku master =>部署还可以,安装宝石等......

在网络浏览器中运行我的应用时,我收到了一个heroku错误:app崩溃了。

In the ouput of heroku logs, this got my attention :
==> dyno-2625316.log (crash) <==
/disk1/home/slugs/321697_5debeb5_58eb-de03f9a2-bd41-487c-aae7-6b20b9281d85/mnt/.bundle/gems/ruby/1.8/gems/activesupport-
3.0.0/lib/active_support/dependencies.rb:239:in `require': /disk1/home/slugs/321697_5debeb5_58eb-de03f9a2-bd41-487c-aae7
-6b20b9281d85/mnt/app/helpers/string_helper.rb:6: syntax error, unexpected kEND, expecting $end (SyntaxError)

似乎我的string_helper模块中存在一个语法错误。这个文件是用utf-8编码的(我知道它很重要,因为它很重要)。

此文件包含以下行(空):

module StringHelper




end

注意:我有一个包含方法的groups_helper文件,因此应用程序崩溃了。我删除了它,现在错误指向了这个stringhelper。

我现在要做的是:删除此文件并重新部署。

编辑我删除了string_helper。现在错误发生在events_controller.rb上,这是一个非常相同的错误

==> dyno-2625316.log (crash) <==
/disk1/home/slugs/321697_401813b_58eb-4b2e3910-f043-4e4f-8eae-8631c932a62b/mnt/.bundle/gems/ruby/1.8/gems/activesupport-
3.0.0/lib/active_support/dependencies.rb:239:in `require': /disk1/home/slugs/321697_401813b_58eb-4b2e3910-f043-4e4f-8eae
-8631c932a62b/mnt/app/controllers/events_controller.rb:104: syntax error, unexpected kEND, expecting $end (SyntaxError)

第104行是班级的最后一步

class EventsController < ApplicationController

  layout 'event'

  def index
  end

  ...

end

此文件也在utf-8

1 个答案:

答案 0 :(得分:1)

看起来您的文件在开头就有BOM字符。

UTF-8不需要BOM,实际上会导致ruby 1.8出现问题。

你需要删除它们并设置你的编辑器不要写它们。

http://en.wikipedia.org/wiki/Byte_order_mark#UTF-8