레이블이 Ruby on Rails인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Ruby on Rails인 게시물을 표시합니다. 모든 게시물 표시

2010년 10월 7일 목요일

no such file to load -- guid

rails를 처음 하다보니 이런 간단한 에러에서도 삽질하게 된다.
그냥 guid가 없다는 에러이므로 설치하면 된다.

$ gem install guid



앞으로는 gem말고 plug-in으로 설치해볼 생각이다.
gem으로 설치할 경우에는 server가 바뀌면 다시 설치해야 하는 번거로움이 생기는데, plug-in으로 설치하면 알아서 같이 가져오는 것 같다.

rails와 mysql 연동하기

처음 rails공부를 시작하면서 제일 힘들었던 것이 바로 이 mysql연동하는 것이었다.
rails는 mysql을 설정해주지 않으면 default로 sqlite3 db를 사용한다.

어쨌거나, 시작해보자.

개발환경은 다음과 같다.
OS X 10.6.4
Rails 2.3.8
ruby 1.8
mysql 5.1.51 (os X 10.6 - x86_64)



1. 설치

우선 컴퓨터에 mysql이 설치되어 있어야 한다. (Mac에 mysql 설치하기)

$ gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
(mysql_config가 있는 경로를 적어준다)

이렇게 하여 "1 gem installed"라는 메세지가 뜨면 성공이다.
그러나 나는 무수한 수행착오를 겪었고 셀 수 없을 만큼 지웠다가 다시 깔기를 반복했다.
참고로 mysql을 지우는 명령은 다음과 같다.
$ gem uninstall mysql

gem 명령은 상황에 따라 sudo를 필요로 한다.


2. database설정

ralis를 만든 곳으로 이동하자.
그리고 database파일을 수정한다.
$ vi config/database.yml

development, test, production이 있는데 이것은 개발과 테스트와 실제 사용할 db를 따로 관리하기 위해서라고 한다.
아무튼 일단 개발을 할테니까, 가장 많이 사용하게 될 것은 development다.
development를 수정하자!
development:
adapter: mysql #사용할 database
encoding: utf8
reconnect: false
database: test_development # 실제 mysql에 생성되는 database 이름
pool: 5
username: root # mysql에 접속할 id와 password
password:
socket: /tmp/mysql.sock # 보통 mysql.sock은 tmp에 있다. (시스템에 따라..)



3. database생성

위의 설정파일에 저장한 id와 password로 mysql에 접속하여 database를 생성한다
$ mysql -uroot

mysql> create database test_development;
mysql> exit

성공 메세지가 나오면 빠져나온다.
그리고 ralis의 database를 구축한다.
$ rake db:migrate

한 줄의 명령어로 ralis에서 필요한 table이 방금 생성한 db에 자동으로 생성된다.
만약 migration이 안된다면 무언가 db설정이 잘못된 것이므로 과정을 주의깊게 살펴보길 바란다.



위의 과정 중에 에러가 난다면 "이쪽"으로 이동!!

2010년 8월 15일 일요일

ralis로 간단한 WebPage 만들기


Ruby on Rails를 설치한 이후, 간단한 web page를 만들어 보았다.
그냥 'Hello World!'를 찍어내는 web page이다.


우선 이 web을 관리할 디렉토리를 하나 만들고 그 안에서 작업을 수행토록 한다.

$ mkdir Web
$ cd Web
$ rails testBlog

rails명령에 의해 온갖 것들이 생성이 된다.
화면에 생성되는 파일들이 죽 써지게 되는데, 이것이 끝나면 생성된 폴더를 확인해보자.
ls 명령어를 수행해보면 testBlog라는 폴더가 생성된 것이 보일 것이다.

이 디렉토리로 들어가보면 여러가지가 보일 것이다.
여기서 web page를 하나 생성해보자.
page의 이름은 test로 하겠다.

$ ./script/generate controller test

그러면 또 무언가 파일들이 생성이 된다.
생성된 파일 중 하나를 수정해 보자.

$ vi ./app/controllers/test_controller.rb

위의 파일을 열어 class 내부에 다음과 같은 부분을 새로 넣는다.
def index
render :text => "Hello, World!"
end

저장하고 빠져나와서 web page를 실제로 보자.
web page를 브라우저에서 보기 위해서는 server가 구동되고 있어야 한다.
손쉽게 local에서 server를 구동시킬 수 있다.

$ ./script/server
=> Booting Mongrel
=> Rails 2.3.8 application starting on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

이런 식으로 server가 구동되는데,
safari 등의 브라우저를 열어서 http://0.0.0.0:3000 이라고 주소를 적어주면 환영 메세지가 나오게 되어있다.

방금 만든 page로 가기 위해서는 주소 창에 http://0.0.0.0:3000/test 라고 주소를 적어주면 된다.
화면에  Hello, World! 라는 글자가 보이면 성공!!



가끔 Routing Error가 날 수 있다.
No route matches "/test" with {:method=>:get}

이 에러를 수정하기 위해서는 routes.rb파일을 고쳐준다.

$ vi ./config/routes.rb

파일을 열어서 다음을 추가한다.

map.connect '*url', :action => 'show_page'

구글님이 알려줘서 그렇게 추가하기는 했지만 무슨 뜻인지는 좀 더 공부를 해봐야 겠다.


Mac OS에 ruby on rails 설치하기



사용중인 환경은 snow leopard (10.5 업그레이드 후 10.6)임을 밝혀두는 바입니다.



Ruby on Rails 설치
$ gem install rails
$ gem update rails
10.5 ver 이후로는 ruby on rails가 패키지에 포함이 되어있다는 것을 어디선가 보았다.
그래서 위와 같은 명령어로 설치를 해주면 OK!
설치 후에는 /usr/bin/에서 ruby를 확인할 수 있다.

RubyGem을 위 링크에서 다운로드 한 후, 압축을 해제하고 해당 디렉토리 안으로 들어가서 다음의 명령어를 실행시킨다.
$ sudo /usr/bin/ruby setup.rb

추가 설치 (옵션사항)
$ sudo gem install mongrel
$ sudo gem install capistrano
$ sudo gem install RedCloth termios rspec sake
Mac에는 기본적으로 sqlite3 database가 설치되어 있다. mysql을 사용하고 싶다면 따로 설치해야 한다.



덧, 참고 사이트