2012-01-05 2 views
1

Я очень новичок в рельсах.Rails UTF8-encoding Выпуск

У меня есть существующая база данных MS SQL и создайте на ней рельсы-приложения. Я только что собрал все необходимые материалы из существующих таблиц.

Но у меня есть Umlaut в моем исходном коде index.html.erb.

<td><%= wohnung.Grösse %></td> 

Но это вызывает ошибку внутреннего сервера 500.

development.log не помогает мне ...:

Started GET "/wohnungs" for 127.0.0.1 at 2012-01-05 13:52:24 +0100 
Processing by WohnungsController#index as HTML 
[1m[36mWohnung Load (0.0ms)[0m [1mEXEC sp_executesql N'SELECT [Wohnung].* FROM [Wohnung]'[0m 
Rendered wohnungs/index.html.erb within layouts/application (15.6ms) 
Completed 500 Internal Server Error in 62ms 

Если удалить эту строку, она работает. Но каждый умляут в текстах представлен символ '' ...

Что я сделал:

  • Добавлен '#coding: UTF-8' на вершине wohnung_controller
  • Добавлен «кодирования : utf8' в database.yml,
  • Добавлен 'config.encoding = "utf8"' к application.rb,
  • Добавлено META HTTP-эквив = "Content-Type" содержание = "текст/html; charset = utf-8 " в файл application.html.erb.

Я никогда не знаю, что я мог бы делать дальше ... Пожалуйста, помогите :)

Привет, Beasty

+0

Не уверен, что его опечатка, но «#coding: utf-8» поверх wohnung_controller должна читать «#encoding: utf-8» –

+0

Да, это была опечатка ... Ошибка возникает в * .html.erb на самом деле. Но я добавил метатеги для юникода и т. Д. Но ничего не изменилось, у меня все еще возникла проблема ... – Beastcraft

ответ

1

Почему бы вам не использовать менее проблематичным, как wohnung.groesse ограничить,? Вероятно, вам просто нужно переименовать столбец базы данных. Не рекомендуется использовать специальные символы в имени столбца функции или базы данных.

+0

Да, вообще-то неплохо было поместить не-ASCII-символы в именах методов, это только порождает проблемы (например, этот). – Romain

+0

Да, вы правы. Я переименую их, спасибо :-) Но у меня все еще проблема, что умлауты в моем тексте отображаются неправильно. Умлауты представлены -значком. (Эти строки из db-записи на веб-странице ...) Как это решить? :/ – Beastcraft

+0

utf8 - это правильная кодировка. Если в базе данных есть кодировка utf8, она должна работать. Вы можете выбрать кодировку в database.yml и в рельсах выполнить миграцию create_table с помощью опции «DEFAULT CHARSET = utf8» – 0x4a6f4672

Смежные вопросы