Сбой приложения из-за синтаксической ошибки в кодировке помощника utf-8 - PullRequest
1 голос
/ 31 октября 2010

Я использую heroku для развертывания моего приложения (rails 3). Итак, я делаю как обычно, это git commit, git push heroku master => развертывание в порядке, гемы установлены и т. Д.

При запуске моего приложения в веб-браузере я получаю сообщение об ошибке heroku: приложение упало.

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 с методами в нем, и приложение зависало из-за этого. Я удалил его, и теперь ошибка указывает на этот помощник строки.

Что я буду делать сейчас: удалите этот файл для повторного развертывания.

Редактировать Я действительно удалил 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 Ответ

1 голос
/ 01 ноября 2010

Похоже, в ваших файлах есть символы спецификации в начале.

Спецификация не требуется для UTF-8, и фактически вызывает проблемы с ruby ​​1.8.

Вам необходимо удалить их и настроить редактор так, чтобы они не записывались.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...