http://www.zabada.com/technology/Wiki.jsp?page=RubyOnRailsQuickStart

Ruby On Rails - 10개의 단계를 거쳐서 간단한 데이터베이스를 다루는 웹애플리케이션을 만들어보자.#

이 튜토리얼은 RubyOnRails를 사용하여 간단하고 평범한 하나의 테이블을 가진 데이터베이스를 다루는 웹 애플리케이션을 다룬다. 그리고 이 문서는 당신의 컴퓨터에 Ruby나 데이터베이스가 설치되어 있지 않은것을 전제로 작성되었다. 당신은 Ruby에 대해서 알고 있을 필요조차 없다. 그럼 시작해보자.

1단계 - Ruby 설치#

http://rubyinstaller.rubyforge.org로부터 Ruby(1.8.2나 그 이상의 버전) 인스톨러을 다운로드 한다. Download링크로 가서, 당신의 OS를 위한 인스톨러를 다운로드하자. 예를 들어, 당신이 윈도우즈를 사용한다면, 1.8.2-15 안정 릴리즈를 다운로드한다. 인스톨러를 설치할때 디폴트값을 모두 사용하자.

2 단계 - Rails 설치#

명령창을 열어서 다음과 같이 수행한다.

gem install rails --include-dependencies

그럼 다음과 같은 메시지를 뿌리면서 에러없이 정상적으로 설치를 한다. 메시지를 Ruby버전과 시스템에 따라 다소 다를수 있다.

D:\rails>"c:\ruby\bin\ruby.exe" "c:\ruby\bin\gem" install rails --include-depend
encies
Attempting local installation of 'rails'
Local gem file not found: rails*.gem
Attempting remote installation of 'rails'
Updating Gem source index for: http://gems.rubyforge.org
Successfully installed rails-1.0.0
Successfully installed rake-0.6.2
Successfully installed activesupport-1.2.5
Successfully installed activerecord-1.13.2
Successfully installed actionpack-1.11.2
Successfully installed actionmailer-1.1.5
Successfully installed actionwebservice-1.0.0
Installing RDoc documentation for rake-0.6.2...
Installing RDoc documentation for activesupport-1.2.5...
Installing RDoc documentation for activerecord-1.13.2...
Installing RDoc documentation for actionpack-1.11.2...
Installing RDoc documentation for actionmailer-1.1.5...
Installing RDoc documentation for actionwebservice-1.0.0...

3 단계 - MySQL 설치#

http://dev.mysql.com/downloads/mysql/에서 다운로드 한다. 당신이 윈도우즈를 사용한다면, http://dev.mysql.com/get/Downloads/MySQL-4.1/mysql-4.1.15-win32.zip/from/pick를 다운로드하고자 할것이다. 다운로드된것의 압축을 풀고 적절한 인스톨러를 실행하자. 여기서도 디폴트값을 사용하자. 당신은 root비밀번호를 셋팅하라는 요청을 받을것이다, 이것을 셋팅하고 잊지말라.

4 단계 - MySQL 데이터베이스 생성과 퍼미션을 할당.#

프로젝트명을 Widget 로 할것이며 widgets에 저장하자.

명령창에서, MySQL로 로그인하자.

mysql -u root -p
Enter Password: *****
지금 MySQL쉘로부터 다음을 수행하자.

mysql> create database widget_development;
mysql> grant all on widget_development.* to 'rlambert'@'localhost'
여기서 rlambert는 MySQL에서 사용하는 사용자명이다. 윈도우즈에서, 나는 'ODBC'@'localhost'에도 퍼미션을 할당했다.

mysql> grant all on widget_development.* to 'ODBC'@'localhost'

5 단계 - Rails 프로젝트 빌드#

명령창에서, Rails프로젝트를 빌드하길 원하는 빈 폴더로 이동하자. 그리고 다음과 같이 수행한다.

rails widget

생성되는 디렉토리구조는 다음과 같다

rails_structure.jpg

새롭게 생성된 Rails "widget"프로젝트 디렉토리로 이동하자.

cd widget

나머지 단계들을 위해, 당신의 명령창을 열어둔체로 그대로 유지하자.

6 단계 - 데이터베이스 테이블을 위한 스키마 생성#

"widget"디렉토리밑에는 "db"디렉토리가 있다. db디렉토리로 가서 "create.sql"라는 이름의 파일을 생성하자.

 widget>   db/create.sql 

다음과 같은 예제와 같이 그 파일내 테이블 스키마를 생성하자.

drop table if exists widgets;

create table widgets
(
  id int not null auto_increment,
  name varchar(100not null,
  size decimal(10,2not null,
  date_available datetime not null,  
  description text not null,
  primary key (id)
);

Rails에서 칼럼명은 크게 중요하지 않다. 여기서 가장 중요한 것은 테이블명으로 widgets를 사용하는 것이다. 디폴트로, 각각의 Rails클래스는 복수개의 클래스명에 이것을 맵핑하는것을 가정한다. 지금 이 스키마를 MySQL데이터베이스로 로드하자.

  mysql widget_development <db/create.sql

7 단계 - Rails를 위한 데이터베이스 설정#

"widget_development" 데이터베이스를 위한 적절한 연결정보를 가지는 config/database.yml를 편집하자.

development:
  adapter: mysql
  database: widget_development
  username: root
  password: YOURPASSWORD
  socket: /path/to/your/mysql.sock

8 단계 - Widget Admin Scaffold 생성#

다음처럼 수행한다.

  ruby script/generate scaffold Widget Admin

9 단계 - 내장된 웹서버 시작#

  ruby script/server

10 단계 - 브라우저를 열어서 실행!#

당신이 선호하는 웹 브라우저를 열어서 다음의 URL로 이동한다.

http://localhost:3000/admin

당신은 Widgets를 생성하고 편집할수 있을것이다. 여기서 10단계를 모두 거친후 다른 작업을 수행할수 있을것이다.

보너스 - 단계 10 - 간단한 유효성 체크 추가#

app/models/widget.rb 파일을 편집한다.

필수인 여러개의 필드를 만들어보자. 다음을 추가한다.

  validates_presence_of :name, :size, :date_available

name이 유일한 것을 확인해보자.

  validates_uniqueness_of :name

마지막으로, size가 가능한 숫자를 사용하는지 확인해보자.

  validates_numericality_of :size

당신의 파일은 다음처럼 보일것이다.

class Widget < ActiveRecord::Base
  
  validates_presence_of :name, :size, :date_available
    
  validates_uniqueness_of :name

  validates_numericality_of :size

end

파일을 저장하고, 웹브라우저로 돌아가자. 유효성 체크는 대체될수 있다. 어떤 새로운 Widgets를 생성하고 테스트해보자.

다음 단계들#

룩앤필을 사용자정의하기#

app/views/adminapp/views/layout아래의 *.rhtml파일을 편집하자. public/stylesheets/scaffold.css CSS파일을 편집하자. 다음은 테이블 cell이 border를 가지도록 셋팅하는 것이다.

td
{
  border: 1px solid #000;
}

함께 읽어볼것들!#

아래의 스크린샷을 보자.

zabada-rails-widget-list.gif

zabada-rails-edit-w-validation.gif

Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
jpg
rails_structure.jpg 86.4 kB 1 12-Jan-2006 13:45 이동국
gif
zabada-rails-edit-w-validation... 36.4 kB 1 12-Jan-2006 10:02 이동국
gif
zabada-rails-widget-list.gif 42.3 kB 1 12-Jan-2006 10:02 이동국
« This page (revision-10) was last changed on 06-Apr-2006 09:45 by 이동국