티스토리 뷰

루비온레일즈

[Ruby On Rails] ORM

sodait 2021. 4. 14. 16:30

ORM (Object-relational mapping) 

객체 관계 매핑

=> 데이터베이스와 Rails가 상호작용할 수 있게 도와주는 것 (통역 역할)

 

ex)

Ruby On Rails -> 루비 언어 사용

postgresql (RDMS 데이터베이스) -> SQL 언어 사용

 

ORM은 루비 문법으로 되어있기 때문에 사용자 친화적!

-> 친화적인 문법을 통해 우리가 데이터베이스를 조작할 수 있다는 장점!

 

 


ORM 기본 설정

루비 문법

irb 켜서 루비 실행

exit 루비 실행 끝

 

 

models / option.rb

⭐belongs_to => Option이라는 모델이 item에 속해 있다는 것을 알려줌
: item => Ruby에만 있는 심볼(Symbol) 데이터 타입

 

Symbol 사용 이유

겉보기에는 String과 Symbol 비슷하지만,
String은 메모리를 스택 영역에 저장 -> 그 값을 선언할 때마다 메모리 주소를 새롭게 할당 받음
Symbol은 메모리를 힙 영역에 저장 -> 계속해서 메모리 재사용 가능
=> 자주 쓰이는 키 값, 설정들은 Symbol을 사용해서 rails에서 자체적으로 메모리 save~

 

 

 

models / item.rb

구조

t.references :item, null: false, forein_key: true
-> t.references (:item, { null: false, forein_key: true}) => (:심볼, {해쉬 구조})가 숨어있음

 

 

 

 

 

 

댓글