M:N의 대표적인 예시는 수업과 학생!한 명의 학생은 여러개의 수업을 듣는다.하나의 수업에는 여러 명의 학생이 있다. 또 하나의 예시로 user와 group한 명의 user는 여러 개의 group에 소속된다.하나의 group에는 여러 명의 user를 가진다. 관련 문서 : http://guides.rubyonrails.org/association_basics.html $ rails g model user$ rails g model group$ rails g model join 관련 문서에서 2.4 The has_many :through Association이 M:N에 관한 내용이 있다.여기서 첫줄에 보면 many to many 관계를 위해서는 또 다른 하나의 모델이 필요하다고 나와있다. (나는 그 모델을..
만약 user 모델과 post가 1:N 관계일 경우 (즉, 한명의 유저는 많은 post를 작성할 수 있다) $ rails g migration AddUserToPosts user:references 이후 db/schema.rb 파일을 확인해보면 마지막 줄에 t.integer "user_id"와 t.index ["user_id"]가 추가된 것을 확인할 수 있다. 콘솔에서 데이터 삽입하는 방법은(만약 10번 id의 user가 포스트를 작성했을 경우) $ Post.create({title: "타이틀 입니다", content: "내용입니다.", user_id: 10})
위와 같은 스키마에서 t.integer :age 를 추가하고 싶다면 $ rake db:drop 이후 $ rake db:drop 이 필수적일것같지만 만약 이미 데이터를 많이 저장해 놨다면 drop하는 순간 데이터는 날라감. 따라서, 기존 테이블에 age 칼럼만 추가하는 방법$ rails g migration AddAgeToUser age:integer$ rake db:migrate고고 db/schema.rb 파일을 보면 칼럼이 생성됨을 확인할 수 있음 콘솔창에서도 확인 가능함~ 개인적인 공부 목적으로 작성한 포스팅이니, 난장판입니다ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ궁금한 사항이 있으시면 댓글 환영해요
1. 먼저 gemfile에 gem 'faker' 추가하고 bundle install!관련 문서는 https://github.com/stympy/faker 여기를 참조함! 이 gem은 임의의 이름, 주소, 폰 번호, 이메일 주소 등등 fake 더미 data를 모델에손쉽게 넣을 수 있는 라이브러리이다! 문서에서 installing 방법에 gem install faker 커맨드를 치면 설치가 된다고 하던데 나는 이상하게 되지않는다. 같이 공부하는 스터디 원 2명도 gem 설치가 안된다고한다.(결국 위에서 말했듯이, 먼저 gemfile에 gem 'faker' 추가하고 bundle install! 이방법을 사용하니 해결) 2. $ rails g model User db/migrate/[timestamp]_crea..