루비온레일즈

[Ruby On Rails] 레일즈 서버 시작 & 초기 세팅 & model 만들기

sodait 2021. 4. 24. 18:28
윈도우는 무조건 관리자 권한으로 열기! (Ubuntu)

 

초기 세팅

sudo apt-get install postgresql postgresql-contrib  postgresql 설치

bundle install 필요한 gem 파일 설치 

sudo service postgresql start/restart postgresql 서버 실행

 


레일즈 시작하기

rails에서 명령어 칠 때는 rails를 앞에 붙여서 시작!

 

rails s (server) 레일즈 서버 시작

(=> rails는 기본적으로 서버를 열면 Puma라는 웹서버를 이용함)

 

서버를 켠 상태에서는 현재 터미널을 사용할 수 없음 -> 새 터미널 띄워서 사용

 

데이터베이스 생성

rails db: create db:migrate db:seed

db: create -> postgres의 rails 명령어를 이용해서 데이터 베이스 생성

db:migrate -> 기존 마이그레이션 파일에 넣어 놓은 것을 migrate해서 데이터베이스에 밀어넣는 작업

db:seed -> 시드 파일에 넣어둔 기존의 더미 데이터들을 데이터베이스로 밀어 넣는 작업

 


모델 만들기

1) 상품 만들기

rails g(= generate) model Item

modle은 단수로 써줘야 함 (Items X) -> 단수로 쓰면 복수로 생성됨

=> 마이그레이션 파일과 모델에 대한 설정을 담당하는 items.rb 생성

 

 

2) 옵션 만들기

rails g model Option item:references name:string stock:integer 

 

migrate/options.rb

t.references => 두 모델 사이에 외래 키(foreign_key) 관계 설정
: option -> item 테이블을 참조(reference)한다 (item_id)
- foreign_key: 외부 테이블의 정보를 끌어오기 위해 사용함 

null: falae -> 이 값은 비어있으면 안된다는 뜻 (option에 item Id가 비어있으면 안됨)
※ dependency가 Nullify 관계일 때는 반드시 삭제해줘야 함

 

 

rails db:migrate

 

 

3) 주문 만들기

rails g model Order user:references receiver_name:string receiver_phone: string zipcode:string address1:string address2:string total:integer

(null : false 옵션 지우기)

 

rails db:migrate

 

4) 장바구니 만들기

rails g model LineItem order:references option:references unit_price:integer quantity:integer total:integer

 

rails db:migrate

 

 

=> 현재 심플한 데이터베이스 테이블 생성 / 각 컬럼 속성 지정 + 외래 키 설정 + relation 설정까지 함
(데이터베이스 구축까지는 했으나, 아직 레일즈 어플리케이션에서는 구축 안된 상태)