[Rails] CRUD 기능 구현(환경 설정 하기)[1]
- ETC../Rails
- 2020. 10. 22.
728x90
MVC모델의 Model
CRUD (Creat, Read, Update, Destroy)는 웹서비스의 가장 기본적인 기능을 말합니다.
이 CRUD를 사용하려면 일련의 과정을 거쳐야 합니다.
- 어떤 정보를 만들어서 저장한다음
- 그 저장한 정보를 읽고 수정하고 삭제
라는 과정이 필요한데 이러한 과정에서 필연적으로 필요한 게 DB 입니다.
→Rails 에서 데이터베이스를 사용하고 싶다면 Active Record라는 ORM을 사용하는데, 이는 MVC 모델에서 Model에 해당합니다.
ORM(Object Relational Mapping)의 약어로 DB테이블의 관계형 데이터와 객체형 데이터(Class)를 연결해 주는 것을 의미
→ 실제DB에 있는 테이블을 클래스화 하고, 데이터 조작 및 SQL 명령어들을 메서드화 해서 쉽게 조작할 수 있게 해준다.
1단계: Model 생성
$ rails g model Post
- 여기서 모델명은 단순히 CamelCase로 만듭니다.
- Model 생성한 결과 아래와 같은 파일이 만들어 집니다.
db/migrate/xxxx_create_post.rb
: 데이터 베이스 테이블 필드 등의 정보를 정의 할 수 있는 마이그레이션 파일입니다.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
'ETC.. > Rails' 카테고리의 다른 글
[Rails] CRUD 기능 구현(Creat / Read)[2] (0) | 2020.10.22 |
---|---|
[Rails] 웹 에서 데이터 주고 받기 (0) | 2020.10.21 |
[Rails] Rails App 구조(File Tree 설명) (0) | 2020.10.21 |
[Rails] 웹 동작 방식(HelloWorld) (0) | 2020.10.20 |
[Rails] 웹 동작 방식(서버 측, 클라이언트 측 입장 분석) (0) | 2020.10.20 |