'Server-Side > Rails' 카테고리의 다른 글
[Rails] windows에서 sqlite3.dll 없다는 에러 해결법 (0) | 2011.03.02 |
---|---|
[Rails] incompatible character encodings: UTF-8 and ASCII-8BIT (0) | 2010.11.14 |
[Rails] windows에서 sqlite3.dll 없다는 에러 해결법 (0) | 2011.03.02 |
---|---|
[Rails] incompatible character encodings: UTF-8 and ASCII-8BIT (0) | 2010.11.14 |
[Rails] `bin_path’: can’t find executable rake for rake-0.8.7 (Gem::Exception) (0) | 2011.03.06 |
---|---|
[Rails] incompatible character encodings: UTF-8 and ASCII-8BIT (0) | 2010.11.14 |
[CentOS] how to install mongodb in 64bit centos (0) | 2011.06.06 |
---|---|
[SVN] how to create repository on ubuntu 10.10 (0) | 2011.01.12 |
[SVN] how to install subversion on CentOS5.X 64bit (0) | 2011.01.04 |
[ntp] Network Time Protocol 사용하기 (0) | 2010.12.21 |
[ntp] no server suitable for synchronization found (0) | 2010.12.21 |
우분투와 윈도우두개의 OS에서 rails app개발을 하고있는데 유독 윈도우에서 만약 mysql db table안에 한글문자가
포함되있을경우 [incompatible character encodings: UTF-8 and ASCII-8BIT] 와 같은
에러가 났다. 개발할때의 환경은 Windows 7 & Ruby 1.9.2 & Rails 3.0.0 & Mysql 5 이였다. rails
3 로 프로젝트를 c:>rails new project -d mysql 과 같이 생성하면,
config/database.yml 속에 adapter 가 mysql2 로 설정되어있다. 뭐 다 좋은데, window에서
이런설정으로 있으면 db의 table안에 한글이 들어있을경우 십중팔구 페이지를 로딩할때 encoding error가 뜬다는
것이다. 한글과 같은 루비 파일 상단에 # encoding: UTF-8 를 넣었음에도 불구하고 말이다. ( mysql2 gem 의
문제인것 같았다. ) 임시방편 해결방안이 있는데 @article.title 이란곳에서 문제가 난다면
@article.title.force_encoding("UTF-8") 형식으로 데이타베이스에서 한글을 불러올때 나는 에러사항을
해결할 수 있다. 하지만 수많은 데이타를 불러오는부분에서 일일이 다 저렇게 할수는 없는방편이고, 이래저래 구글링을하다가 올바른
해결방법을 찾아냈다.
먼저 config/database.yml 파일속에 adapter: mysql2 => adapter: mysql 으로 바꿔버린다.
Gemfile 을 열어서 gem 'mysql2' => gem 'ruby-mysql' 바꾸어 준다.
명령어 bundle install 을 하면 ruby-mysql 이 설치될 것이다. 아니면 gem install ruby-mysql 해도 된다.
서버를 재시작해서 실행해본다. 만약 mysql db에 한글이 포함되있음에도/여러페이지 로딩시 인코딩에러가 안난다면 성공!
만약 [uninitialized constant Mysql::Protocol::UNIXSocket ] 에러가 난다면 config/database.yml 파일을 열어서 host: localhost =>host: 127.0.0.1 로 바꾸어 주어야 한다.
이제 윈도우와 우분투에서 걱정없이 rails를 개발할 수 있게됬다.
uninitialized constant Mysql::Protocol::UNIXSocket 관련에러 해결방안
http://groups.google.com/group/comp.lang.ruby/browse_thread/thread/c05be82e99659815/4af91ae5a60fdf83
mysql-ruby gem git repository
https://github.com/hectoregm/mysql-ruby
mysql-ruby gem 의 소스코드들을 볼 수 있다.
출처 : http://www.c-holic.com/xe/
[Rails] `bin_path’: can’t find executable rake for rake-0.8.7 (Gem::Exception) (0) | 2011.03.06 |
---|---|
[Rails] windows에서 sqlite3.dll 없다는 에러 해결법 (0) | 2011.03.02 |