Heroku и Rails: как установить utf-8 в качестве кодировки по умолчанию - PullRequest
4 голосов
/ 27 июня 2011

Сегодня я создал копию работающего приложения, которое отлично работает на Heroku, и попытался развернуть ее на Heroku в качестве отправной точки для нового проекта.

Я добавил новую папку в качестве gitрепозиторий, создал новый удаленный репозиторий на GitHub, отредактировал файл конфигурации и дал новые имена базам данных, создал новые базы данных и попытался развернуть их на Heroku.

Теперь приложение аварийно завершилось при запуске, поскольку Heroku находит некоторое utf-8 текст в моих исходных файлах и не распознает их:

2011-06-27T14:23:10+00:00 app[web.1]: /app/app/controllers/home_controller.rb:118: invalid multibyte char (US-ASCII)
2011-06-27T14:23:10+00:00 app[web.1]: /app/app/controllers/home_controller.rb:118: syntax error, unexpected $end, expecting '}'
2011-06-27T14:23:10+00:00 app[web.1]: ...tue azioni, conquista la città!"}

Как я могу сообщить Rails и Heroku, что все мои исходные файлы имеют кодировку utf-8?Должен ли я добавить спецификацию UTF-8 в КАЖДЫЙ файл?Это безумие, и я не делал этого в своем предыдущем приложении, которое прекрасно работало.

Я использую Rails 2.3.6.

Ответы [ 2 ]

10 голосов
/ 27 июня 2011

В вашем config / application.rb,

  config.encoding = "utf-8"

в database.yml,

 development:
     adapter:  mysql2(whatever your db)
     host:     localhost
     encoding: utf8

Вы также должны добавить (включая хэш)

# encoding: UTF-8

Источник: http://craiccomputing.blogspot.com/2011/02/rails-utf-8-and-heroku.html

1 голос
/ 19 мая 2013

Я нашел это, гораздо более простое решение:

Просто добавьте ENV['RUBYOPT'] = "-Ku" к своим переменным среды в Heroku.Вы можете сделать это с помощью figaro gem :

  1. Добавьте gem "figaro" к вашему Gemfile
  2. bundle install
  3. Вставьте этот код в config/application.yml:

    production:
      RUBYOPT: "-Ku"
    
  4. Выполнить rake figaro:heroku

Также вы можете попробовать с magic_encoding gem, но мне не нравится этот подход.

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