UTF-8 проблема в приложении рельсов при переходе на производство - PullRequest
5 голосов
/ 29 февраля 2012

Я только что передал свое приложение в его производственной среде:

  • debian
  • nginx
  • единорог
  • mysql

В разработке я использую:

  • mac osx 10.7.3
  • webrick
  • sqlite

Я получил ошибку, когдаЯ перехожу к просмотру с некоторыми символами UTF-8:

ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT):
    1: render renderer_for(:new)
  app/admin/projects.rb:122:in `block (2 levels) in <top (required)>'

Я добавил это вверху моего файла:

# encoding: utf-8

Это работает в моей среде разработки, ноне в моем производственном окружении, есть идеи?

РЕДАКТИРОВАТЬ

Отсюда и ошибка:

f.has_many :roles do |app_f|
  app_f.inputs do
    # if object has id we can destroy it
    if app_f.object.id
      app_f.input :_destroy, :as => :boolean, :label => "Supprimer l'utilisateur du projet"
    end
    app_f.input :user,      :include_blank => false, :label_method => :to_label
    app_f.input :role_name, :include_blank => false 
    #app_f.input :role_level, :label => 'Author type',  :as => :select, :include_blank => false, :collection => Role::role_list
  end
end

Ничего не изменится, если я изменю текущую локаль.

РЕДАКТИРОВАТЬ

Я использую ruby ​​1.9.3 и rails 3.1.0 У меня нет представления, потому что я использую ActiveAdmin DSL

Ответы [ 3 ]

2 голосов
/ 01 марта 2012

Я изменяю mysql в моем Gemfile на mysql2

И это работает:)

0 голосов
/ 29 февраля 2012

Вы не сказали, какую версию Ruby вы используете. И вам нужно показать код вида.

Управление кодированием сложное, и Ruby / Rails не исключение.

Есть несколько замечательных статей Yehuda Katz и JEG2 о кодировании и о том, как это делает Rails.

0 голосов
/ 29 февраля 2012

Я нашел 2 вопроса о вашем вопросе, видели ли вы эти вопросы, надеюсь, ответы помогут решить вашу проблему.:)

Вопрос 1 Вопрос 2

...