->Migration.doc
Migrate를 하기 전에는 db에 등록된 파일이 아니다.
rails에서 migrate는 타임스탬프 기준으로 이후의 파일을 migrate한다.
rails db:rollback 가장 최신의 migrate 파일을 삭제한다.rails g migration change_columns_from_options 추가적인 migration 파일을 만들어서 수정한다.


remove_column :options, :stock // options라는 테이블에서 stock을 지우겠다.rename_column :options, :price, :options_price // options라는 테이블에서 price를 options_price로 바꾸겠다.add_column :items, :price, :integer items라는 테이블에서 price를 추가하겠다Migrate 파일은 삭제하지 말 것!

특정 사용자가 좋아한 아이템들, 특정 아이템을 좋아한 사용자들
Like라는 중간 테이블 활용
rails g model Like user:references item:references 아이템과user를 참조하는 중간테이블 Like생성
특정 아이템이 삭제되었을 때, 사용자가 삭제되었을 때 좋아요가 삭제되어야 하는 destroy 관계. ->
null: false
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용한다. 객체 모델과 관계형 모델 간에 불일치가 존재한다.
-> ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결한다. -> Reference
rails 어플리케이션 서버, 비즈니스 로직 관리 / postresql db관리
rails와 postresql을 통역해주는 장치가 ORM이다. (=Object Relational mapping)

option테이블을 생성할 때 rails g model option item:references 을 작성했다.
belongs_to :item 이라고 쓰여있다.
2. Item은 options와 has_many 관계에 있고, item이 삭제되면 options도 삭제되는 destroy 관계를 갖는다.
rails DB에 등록된 정보들을 가져올 수 있다.


배열 같지만 배열이 아닌 Record가 생성된다.
-> name이 존재해야 한다고 validates를 설정했기 때문에, create할 때 name을 입력하지 않으면 오류가 발생한다.

- migrate 파일에서
null: false를null: true로 변경한다.
null: false인데 item_id가 null이면 에러가 발생한다.- 모델에
optional: ture를 추가한다.
belongs_to :item이라고 기술하면 item_id는presence: true가 디폴트이다.
(루비 irb 시작 exit 끝)
String은 STACK영역에 저장하여 값을 지정할 때마다 메모리 주소를 새롭게 갖게 되는데, Symbol은 메모리를 HEAP 영역에 저장하여 계속해서 재사용한다.

점심 때 출발하는 런치트레인 너무 귀엽다. 그냥 귀여워서 기록ㅎ기. 귀여운개발자들
