MSSQL Adapter 연결도 되었으니.. 이제 슬슬 DB 연동을 해볼까나.. 으흐흐..;;

책에 나온대로 (Wrox Beginning Ruby on Rails) 두근두근 타이핑해보자..

(Rails 프로그램을 scaffold로 개발할 때에는 작업 대상이 되는 데이터베이스 테이블 이름이 반드시 복수형(plural)이어야 한다. 모델의 이름은 그 이름과 같되 단수형이어야 하고, 그 첫문자가 대문자이어야 한다. 이것은 Rails 가 정해놓은 암묵적 규칙이다.)

ruby script/generate scaffold Item Manage

(주:책에서는 mysql 로 items 라는 테이블이 생성된 상태였고, scaffold 를 이용해서 Item 모델과 그것의 컨트롤러를 scaffold 로 자동생성하려 했던것으로 추측[-_-;] 된다)

but...

위명령어로 하니 .. 오류뜬다. (아놔 -_- 뭐 하나 제대로 되는게 없다. 책이 옛날이어서 그렇다기  보다는 RoR 의 하위버젼에 대한 미비한 지원때문이 아닐까 -_-; 읅)

wrong number of arguments (1 for 2)

무슨 에러메세지가... 조낸 간단하다 -_-; ;;; 결국 또 구글사마에게 물어보기로 했다... 답은 ...

yup, seems to be a pretty bad incompatibility bug between ruby 1.8.6 and rails 2.0.1.
i had to go back to 1.8.5 and 1.1.6 respectively for the scaffold to work.


이건뭥미;; 1.8.5 로 저짓을 해란다. -_-;; 으아악!!!!



또다시 구글링... 현재 설치된 버젼에서 올바른 Command 를 찾아보기 시작했다.
아래의 멋진 아티클 발견! (글은 멋지지만 내 기분은 아놔 ㅜ_ㅜ)

http://fairleads.blogspot.com/2007/12/rails-20-and-scaffolding-step-by-step.html

Old vs. New
The next steps show where differences between older Rails tutorials will become greatest. Older tutorials would script/generate a model then use the migrate file created to layout columns in the model's database table. Next you would script/generate a controller and add scaffolding.
This will fail in Rails 2.0.

In Rails 2.0 it will take fewer steps, but may be a little harder to follow because so much is accomplished with so few commands.

짧은 영실력으로 보건데... 몇단계 더 많아졌단다 ㅡㅡ;

ruby script/generate scaffold Movie title:string description:text urllink:string

실행해보자.. 그냥 감으로보건데... Movie 라는 엔티티를 만드는데 title 과 description , urllink 컬럼을 맹그나 보다.. 그 뒤는 컬럼 타입인거 같고.. ㅡㅡ;

실행해보니 오류없이 잘된다.. (아악!)

db\migrate 폴더에는 스크립트 생성 ruby 파일이 만들어졌네..

rake db:migrate

뭐 잘 실행되었다는 메세지가 나온다. (다행이다. 이번에도 안되면 책 엎을려고 그랬다 -_- 흥.)
MSSQL 2005 Management Studio 로 DB를 보니.. 테이블이 역시나 만들어져 있다... 테이블 스크립팅을 보니..

CREATE TABLE [zerocool].[movies](
 [id] [int] IDENTITY(1,1) NOT NULL,
 [title] [varchar](255) NULL DEFAULT (null),
 [description] [text] NULL DEFAULT (null),
 [urllink] [varchar](255) NULL DEFAULT (null),
 [created_at] [datetime] NULL DEFAULT (null),
 [updated_at] [datetime] NULL DEFAULT (null),
PRIMARY KEY CLUSTERED
(
 [id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

id 라는 identity (시퀀스) 컬럼과, created_at , updated_at 컬럼이 추가로 생성되었다.
(아마도 created,updated 컬럼은 rake 에서 db migration 버젼관리 할때 사용되나 보다? (아직안해봐서 잘 모르겠지만 -_-a;)

헥헥 여기까지 DB만들어진건 확인했고.. scaffold 가 model, view, controller 까지 맹글어주었으니.. 웹브라우져로 한번 볼까나...

이렇게 뜬다. (이미지는 다른곳에서 가지고 왔다. 완전 동일해서..)

글쓰기페이지에서..



입력하고 Create 눌러봤다.. 오옷! 저장 잘되겠지.. 당근~ scaffold 가 해준건데.. 난 그냥 prototype 만 CL 로 넣어줬잖아 .. 잘 될거야..


역시나 .. 오류뜬다. (ㅅㅂㄹㅁ;)




뭐냐 이건 .. -_-; syntax 가 틀리단다;; 아놔;; 너무 데이터를 진짜같이[;;] 넣어서 그런가? 싶어서 간단하게 넣어봤다. 그것도 영어로만;;; -_-;;



입력해보니..



잘되었단다..

아놔! 한글 지원이 안된다는건가? 또 어디서 세팅을 변경해줘야 하는거지? ㅜ_ㅜ
아.. 산넘어 산이군화....

Trackback Address :: http://tryruby.tistory.com/trackback/4 관련글 쓰기

댓글을 달아 주세요

  1. 황성호 2008/06/12 23:35 Address Modify/Delete Reply

    완전 암울하겠다..;; 2.0을 기다리며

  2. ZeroCool 2008/06/17 23:10 Address Modify/Delete Reply

    아놔 mysql 로 connection 설정해서 mysql encoding 관련 모든 설정(binary 빼고) 을 utf-8 로 하고 난다음에
    database.yaml 의 설정또한 UTF-8 로 맞춰주니 잘 되네요 -_- 하앍

    아놔아놔 하위버젼 호환성 쉐트인 RoR -_-

http://rubyforge.org/projects/ruby-dbi/

에서 ruby driver interface (맞나 -_-a; ㅋ) 를 다운로드 받습니다.

(글쓸당시 설치파일버젼 : dbi-0.2.0.zip)

zip 의 압축을 풀어서 , dbi-0.2.0\lib\dbd  경로에 있는 ADO.rb 파일을

C:\ruby\lib\ruby\site_ruby\1.8\DBD\ADO

경로에 복사합니다. (ADO 폴더는 없으므로 만들었습니다)

Rails 어플리케이션의 database.yaml 을 열어서 아래와 같이 수정합니다.

development:
  adapter: sqlserver
  database: ZeroRubyDB
  host: 192.168.0.*
  username: zerocool
  password: ****
  timeout: 5000

여기까지만 보고 따라하니 에러나더군요 ㄱ-;;

gem install activerecord-sqlserver-adapter

를 실행하고 다시 ruby script/server 로 webbrick 올리니 에러없이 뜹니다. 헥헥



[Reference]
http://hyghyk.egloos.com/109353
http://wiki.rubyonrails.org/rails/pages/HowtoConnectToMicrosoftSQLServer
http://rubyforge.org/projects/ruby-dbi/

Trackback Address :: http://tryruby.tistory.com/trackback/3 관련글 쓰기

댓글을 달아 주세요

http://rubyinstaller.rubyforge.org 에서 ruby 를 내려받음.

Execute Command >> gem install rails --include-dependencies

sqlilite 의 win32 dll 을 다운받음 (http://www.sqlite.org/download.html)

sqlite3.dll / sqlite3.def 를 ruby/bin 에 복사

Execute Command >> gem install sqlite3-ruby

ruby script/server 로 webbrick 으로 띄워서 확인하기. 끝~*

Trackback Address :: http://tryruby.tistory.com/trackback/2 관련글 쓰기

댓글을 달아 주세요