[Rails] CRUD 기능 구현(환경 설정 하기)[1]

728x90

 

MVC모델의 Model


CRUD (Creat, Read, Update, Destroy)는 웹서비스의 가장 기본적인 기능을 말합니다.

이 CRUD를 사용하려면 일련의 과정을 거쳐야 합니다.

  1. 어떤 정보를 만들어서 저장한다음
  2. 그 저장한 정보를 읽고 수정하고 삭제

라는 과정이 필요한데 이러한 과정에서 필연적으로 필요한 게 DB 입니다.

→Rails 에서 데이터베이스를 사용하고 싶다면 Active Record라는 ORM을 사용하는데, 이는 MVC 모델에서 Model에 해당합니다.

ORM(Object Relational Mapping)의 약어로 DB테이블의 관계형 데이터와 객체형 데이터(Class)를 연결해 주는 것을 의미
→ 실제DB에 있는 테이블을 클래스화 하고, 데이터 조작 및 SQL 명령어들을 메서드화 해서 쉽게 조작할 수 있게 해준다.

1단계: Model 생성


$ rails g model Post
  • 여기서 모델명은 단순히 CamelCase로 만듭니다.
  • Model 생성한 결과 아래와 같은 파일이 만들어 집니다.

  1. db/migrate/xxxx_create_post.rb : 데이터 베이스 테이블 필드 등의 정보를 정의 할 수 있는 마이그레이션 파일입니다.
  2. app/model/post.rb : Rails에서 사용할 model 입니다. 1번 마이그레이션을 통해 생성된 post 테이블과 연결하여 사용 합니다.

Rails에서의 모델 규칙

  • 모델 클래스의 규칙은 단수형의 CamelCase (ex) Post, PostComment
  • 모델 클래스의 파일 이름은 단수형의 snake__case (첫 글자는 소문자로, 띄어쓰기 대신_ 사용
    (ex) post.rb, post_comment.rb
  • 테이블은 복수형의 snake_case입니다. 단순하게 s만 붙이는 것이 아니라 Person이라는 모델을 만들면 table명은 people로 변환되는등 의 처리가 있다.
    (ex) posts, post_comments

2단계: 마이그레이션 파일에서 테이블 정보 작성


생성된 마이그레이션 파일에서 테이블 정보를 작성하려고 합니다.

Post 모델에 글 제목을 저장할 title 컬럼과 글 내용을 저장할 contents 컬럼을 생성

db/migrate/&&&&&&&_create_posts.rb
class CreatePosts < ActiveRecord::Migration[5.2]
  def change
    create_table :posts do |t|
            t.string :title
            t.text :content

      t.timestamps
    end
  end
end

3단계: 마이그레이션 파일로 테이블 생성


$ rake db:migrate

현재 테이블의 정보를 확인하고 싶다면 db/schema.rb 를 통해 확인 가능 합니다.(DB구조와 함께 마이그레이션이 어디까지 실행 되었는지)

ActiveRecord::Schema.define(version: 2019_09_30_170541) do

  create_table "posts", force: :cascade do |t|
    t.string "title"
    t.text "content"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

end
728x90

댓글

Designed by JB FACTORY