Romantic Developer : )
(Ruby on Rails) CRUD 개념으로 게시판 실습해보기(2. Create) 본문
(Ruby on Rails) CRUD 개념으로 게시판 실습해보기(2. Create)
Romantic_Developer 2018. 5. 20. 12:00안녕하세요 영감을 주는 개발자 '방민방민'입니다.
다른 이야기는 빼고 바로 시작하도록 하겠습니다.
1. 개념
CRUD 에서 Create ( 새로운 게시물 생성) 에 대한 내용을 다루고자 합니다..
2. 실습
Create 라는 기능하는 콘트롤러는 다음의 두가지로 구성될 것입니다.
new 는 실제 사용자에게 보여지는 페이지로 사용자로부터 데이터를 받아오는 역할을 할것이고
create 는 사용자에게 보여지지는 않지만 new 에서 받아온 데이터를 이용하여
실제 게시물을 생성하는 역할을 할것입니다.
<notes.controller.rb 파일의 create 파트>
#Create def new #사용자에게 보여질 create 페이지 end def create #사용자의 데이터를 받아와서 내부에서 게시물을 생성 end
new 는 사용자에게 보여지는(view) 파일임으로 view 폴더 내부에 사용자에게 보여질 new.html.erb 페이지를 생성해 줍니다. 그리고 라우팅을 통해 아래와 같이 입력하여 사용자로부터 new 요청을 받으면 new 페이지를 보여주도록 합니다.
<routes.rb>
Rails.application.routes.draw do get 'notes/new' => 'notes#new' #사용자로부터 new 페이지를 요청받으면 new 페이지를 보여줌 end
new 가 나타날 view 페이지에 아래와 같이 입력한 뒤에 실행해 보면 웹페이지가 new 페이지를 출력해 주는것을 확인할 수 있습니다.
새글을 작성해 보아요
참~ 쉽죠?????
이제 정식으로 html 코드를 활용하여 /notes/new 에서 사용자의 데이터를 받아올 수 있도록
아래의 코드와 같이 new.html.erb 파일에 입력합니다.
<new.html.erb>
<p1>새글을 작성해 보아요</p1> <form action="/notes/create"> <input name="input_title" type="text"> <input name="input_content" type="text"> <input type="submit"> </form>
위의 코드 input 이나 form 태그에 관한 내용은 이 포스팅의 의도와 벗어나기때문에 생략 하겠지만
사용자로부터 input_title 과 input_content 를 받아 /notes/create 라우팅으로 보내주겠다는 뜻입니다.
이렇게 만든 new.html.erb 는 아래와 같은 화면을 출력합니다.
이제 사용자로부터 받은 데이터인 input_title과 input_content는 create 콘트롤러를 향해 전달되었습니다..
이를 활용하기 위해서는 사용자로부터 날라온 데이터는 params[:name] 으로 사용이 가능합니다.
따라서 사용자에게 입력된 input_title 과 input_content 를 이용하여 create controller에
아래와 같이 입력해 줍니다.
note 라는 변수 선언과 Note.create 를 통해 새로운 note 테이블을 생성해 줍니다.
<notes_controller.rb 의 create 파트>
def create #사용자의 데이터를 받아와서 내부에서 게시물을 생성 note = Note.create title: params[:input_title], content: params[:input_content] redirect_to '/notes/new' end
이후 /note/new 페이지에서 아래와 같이 입력하고 제출을 클릭해봅니다.
그러면 다시 아무것도 적혀있지 않은 new 페이지로 돌아오는 것을 확인할 수 있는데,
이는 create controller에서 redirect_to '/notes/new 명령어를 통해 다시 notes/new 라우팅으로
이동했기 때문에 다시 새로운 게시물을 생성하는 페이지로 이동해준 것이라는 것을 확인할 수 있습니다.
실제로 /rails/db 를 통해 확인해 보면 입력한 데이터(게시물)이 등록되었음을 확인할 수 있습니다.
이상으로 오늘은 Create 단계에 대하여 실습을 진행해 보았습니다.
지금까지 영감을 주는 개발자 '방민방민' 이었습니다. 감사합니다 :)
'Romantic Developer > Ruby on Rails' 카테고리의 다른 글
(Ruby on Rails) CRUD 개념으로 게시판 실습해보기(3. Read) (0) | 2018.05.21 |
---|---|
(Ruby on Rails) CRUD 개념으로 게시판 실습해보기 (1.Model 생성) (0) | 2018.05.19 |
(Ruby on Rails) Ruby on Rails 가 도대체 뭐죠? (0) | 2018.05.11 |