Server-Side/Rails2011. 3. 6. 20:23
rake를 실행했을 때 아래와 같은 에러가 발생하는 경우의 해결법이다.
`bin_path’: can’t find executable rake for rake-0.8.7 (Gem::Exception)

c:\Ruby\lib\ruby\gems\1.9.1\specifications\rake.gemspec 파일을 삭제한다.

Posted by 준피
Server-Side/Rails2011. 3. 2. 22:50
윈도우즈 운영체제에서 Rails 프로젝트를 생성한 직후에 돌려보면 sqlite3.dll이 없어서 수행할 수 없다는 에러가 나온다.
이러한 이유는 기본 데이터베이스가 sqlite이기 때문이다. 


1. 기본 데이터베이스를 mysql로 하기
# rails <app name> --database=mysql

2. sqlite3 설치하기
sqlite 사이트에서 sqlite-shell-win32-x86-3070500.zip, sqlite-dll-win32-x86-3070500.zip 두개를 다운받아서 압축을 푼다.
그러면 sqlite3.def, sqlite3.dll, sqlite3.exe가 나온다. 이 파일들을 Ruby디렉토리 안의 bin에 옮긴다.
해당 Rails 프로젝트에서 gem install sqlite3-ruby 를 실행한다.


참고 사이트
Posted by 준피
Server-Side/Rails2010. 11. 14. 17:10

우분투와 윈도우두개의 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를 개발할 수 있게됬다.

Posted by 준피