->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
이라고 쓰여있다.rails DB에 등록된 정보들을 가져올 수 있다.
배열 같지만 배열이 아닌 Record가 생성된다.
- 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 영역에 저장하여 계속해서 재사용한다.
점심 때 출발하는 런치트레인 너무 귀엽다. 그냥 귀여워서 기록ㅎ기. 귀여운개발자들