Ruby On Rails in UA Icon_home Главная Add to bookmarks Translate translate Profile Войти
Регистрация Форум Блоги Пользователи Ресурсы Список джемов      Поиск   

Ruby On Rails in UA/Вопросы по программированию на ROR/Базы и utf8

2008-06-10 01:44:48 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 986
Регистр: 2007-03-13
его блог 28 сообщ.
Базы и utf8
So, here’s our app/controllers/application.rb as it stands:

class ApplicationController < ActionController::Base
before_filter :set_charset
before_filter :configure_charsets

def set_charset
@headers["Content-Type"] = "text/html; charset=utf-8"
end

def configure_charsets
@response.headers["Content-Type"] = "text/html; charset=utf-8"
# Set connection charset. MySQL 4.0 doesn't support this so it
# will throw an error, MySQL 4.1 needs this
suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end
end
end
2008-06-04 05:45:57 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 986
Регистр: 2007-03-13
его блог 28 сообщ.
Продолжая тему
Вместо

suppress(ActiveRecord::StatementInvalid) do
ActiveRecord::Base.connection.execute 'SET NAMES UTF8'
end

Можно просто прописать в daatbase.yml

development:
adapter: mysql
database: forum_development
username: root
password: ,fhfrelf
host: localhost
encoding: utf8

Что заменит SET NAMES UTF8
2008-06-09 10:47:25 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: Базы и utf8
Я так понимаю, что utf-8 позволяет работать с национальными алфавитами, но у меня ничего не работает.
Вот что получается в utf-8:

Вместо знаков ???? было слово "вася". И естественно, что по команде select * from cats where name like 'вася'; ничего не выведется.
Может что-то не так я делаю?
2008-06-10 04:57:37 Ответить  
admin
Ruslan Voloshin
Адрес: odessa
Сообщений: 986
Регистр: 2007-03-13
его блог 28 сообщ.
RE: RE: Базы и utf8
Начнем сначала

в /config/environment.rb
Добавляешь заветную строчку

$KCODE = "utf8"

Далее


При чем не забываешь что у тебя самы страницы должны просматриваться тоже в
тоесть должен присутствовать мета тег в хедерах

meta http-equiv="Content-Type" content="text/html; charset=utf-8"

что бы страница открывалась в правильной кодировке

при чем ты не должен забывать что и в базе таблица должна быть создана


Возможно я что то упустил но хотябы проверь это елси не сработает тогда будем дальше смотреть
,
2008-06-09 10:47:24 Ответить  
keph
Yaroslav Syachin
Адрес:
Сообщений: 17
Регистр: 2007-08-23
его блог 0 сообщ.
RE: Базы и utf8
Начну с вопросов, так как с подобным ещё не сталкивался, работаю недавно.

1. :use_sitealizer - насколько мне известно, это для того, чтобы предотвратить ввод в полях всяких управляющих команд майскьюэль?
2. Добавляешь заветную строчку $KCODE = "utf8" - куда добавлять?
3.
Зачем обьявлять этот метод? Где он будет использоваться?
4. ... CHARACTER SET utf8 COLLATE utf8_general_ci; - как установить кодировку в миграциях? поскольку работать я всё равно буду с миграциями?
Реклама: Дивные пошаговые онлайн игры только самые новые. Вы создали корпорацию? Оригинальные гайдлайны от Limecompany в кратчайшие сроки. смотрите. Лучший выбор: одежда для детей и детская одежда в нашем каталоге. Необходимо.
Ключевые слова:
Гости: 31 Онлайн: Roman V. Babenko,
Rambler's Top100
О проекте по всем вопросам обращайтесь на support
Rubyclub.com.ua Copyright © 2007 - 2008