Header

  1. View current page

    재선아빠님의 노트

Profile_image?t=1224119607&type=big
17

Ruby&Rails

Agile Web Development with Rails 2nd

개발환경 설치

  • Ruby / Rails / 각종 gems (rcov ...)
  • MySQL
  • Tools :Aptana + RadRails | IDEA + ruby-plugin | TextMate

MySQL

  • DB생성 : mysqladmin -u root create database_name
  • 접속 (패쓰워드가 설정된 경우는 -p 옵션을 줘야함) : mysql -u root -p database_name
  • 설정된 암호 삭제
    mysql> use mysql
    mysql> update user set password=password('') where user='root'
    mysql> quit
    # mysqladmin -u root -p reload (패스워드 적용시키기위해서 DB 리로드)

책에나온 셈플 작성중 기록할 것들

Create Own Rails API Document

  1. rails_apps> rails dummy_app
  2. rails_apps> cd dummy_app
  3. dummy_app> rake rails:freeze:gems
  4. dummy_app> echo >vendor/rails/activesupport/README
  5. dummy_app> rake doc:rails

config/database.yml 작성시 유의

password:공백xxxx

컬럼을 추가하는 경우

depot> ruby script/generate migration add_price

  1. exists db/migrate
  2. create db/migrate/002_add_price.rb
  3. 002_add_price.rb 에서 추가할 컬럼에 대한 정보를 넣는다.
    def self.up
       add_column :products, :price, :decimal,:precision => 8, :scale => 2, :default => 0   (product 테이블에 price 컬럼을 추가하는 경우임)
    end
  4. depot> rake db:migrate

뷰작성시 나온 내용

  1. h(string) : HTML 스트링들을 escape 시켜준다.
  2. 레이아웃 작성하는 법 : 컨트러와 동일한 이름의 레이아웃 페이지를 생성해주면 됨.
  3. 뷰에서 자주 사용하는 메소드들은 헬퍼 메소드로 ~
  4. rjs 템플릿 적용 : Ajax 효과 같은걸 주기 편하게 제공하는 것.

세션

레일즈는 컨트롤러 내부에서 해시형태의 컬렉션을 유지하고 있는데 이를 보통 session 이라고 한다. 기본 상태로는 서버상에 파일로 저장된다.

세션을 DB에 넣는 방법

  1. depot> rake db:sessions:create
  2. exists db/migrate
  3. create db/migrate/004_add_sessions.rb
  4. depot> rake db:migrate

세션을 삭제하는 방법

depot> rake db:sessions:clear

레일즈 콘솔 사용

  1. depot> ruby script/console
  2. User.create(:name => 'dave', :password => 'secret', :password_confirmation => 'secret')
  3. User.count
  4. 1

config/routes.rb

map.connect ':controller/:action/:id.:format 와 같이 설정했다면 컨트롤러는

respond_to do |format|
format.html
format.xml
end

와 같이 respond_to  블럭 안에서 받아들이 컨텐트 타입을 리스트업 해준다.

호출 URL 에  .xml 을 붙이게 되면 xml 용 rhtml 템플릿을 사용해서 뿌려준다. 이런 호출 내용을 자동화 시키려면

respond_to do |accepts|
accepts.html
accepts.xml { render :xml => @product.to_xml(:include => :orders) }
 end

16. Migration

annotate_models plugin 을 사용하면 각 모델파일 상단에 스키마 정보에 대한 description 을 달아준다.  (depot> rake annotate_models)

Tags

History

Last edited on 03/22/2007 16:31 by JasonPA

Comments (0)

You must log in to leave a comment. Please sign in.