ruby on rails

db table 생성, association 설정

흰두부1 2020. 11. 12. 12:29

rails에서는 db작업을 할 때 항상 migration을 생성해주고 db:migrate 해주어야 한다.

이미 migrate 된 파일을 직접 수정해주면 안된다.

 

참고: blog.devjoshua.me/2017/02/19/rails-column-rename/

 

[RoR] Rails에서 DB컬럼명을 잘못 입력해서 변경하고 싶을 때

QA에서 개발로 전직한 주니어 개발자의 블로그입니다

blog.devjoshua.me

할 작업: user_id 테이블을 만들고 이미 생성된 테이블 Article(id: integer, title: string, decription: text, created_at: datetime, updated_at: datetime)에 1:many 관계로 연결하기

 

rails generate scaffold User username:string # 테스트만 할것이므로 scaffold로 만들어줌
rails generate migration add_user_id_to_articles

 

db/migrate/add_user_id_to_articles.rb에서

class AddUserIdToArticles < ActiveRecord::Migration[6.0]
  def change
    add_column :articles, :user_id, :int
  end
end

으로 Article 테이블에 user_id column을 추가해주고

 

models/article.rb에서

class Article < ApplicationRecord
  belongs_to :user
end

 

models/user.rb에서

class User < ApplicationRecord
  has_many :articles
end

 

위와 같이 관계를 설정해주고

rails db:migrate하면 관계 설정이 완료된다

 

rails console에서 테스트해보자