이번 시간에는 각각의 포스트들을 수정하고 삭제할 수 있는 기능을 넣어볼 것입니다.
저번 시간에 post 라는 모델을 만들었습니다. 이 post를 만들어놓았는데 string형태로 각각 title과 content를 담는 테이블 모델을 작성하였습니다.
하지만 기본적으로 id라는 것이 항상 존재해서 인덱스형태로 붙게됩니다.
즉 우리가 create 했던 게시글들도 사실상 번호들이 매겨 있습니다.
이것을 routes에서 변수(?)선언하듯이 사용을 할 수 있는데 /:아무변수이름 으로 사용을 하면 숫자로 이해가 되어서
나중에 컨트롤러에 parmas[:post_id] 로 받아올 수 있습니다.
일단 routes.rb를 먼저 고쳐보도록 하겠습니다.
앞에서 말한 것처럼
delete/1, delete/2 이런식으로 게시글의 숫자를 주는 페이지로 보내서 삭제를 한다고 생각합시다. 그렇다면 home#delete 함수를 사용해서 할거고요.
params[:post_id]를 Post 모델중 find해주는 것입니다.
그다음에 one_post 에 저장을 해주고요. 이를 destroy 해주면 삭제가 됩니다.
우리는 /list 디렉토리로 다시 가주기 때문에 삭제 url 후 list가 다시 보여지게 됩니다.
수정도 동일하게 찾은 후에 one_post에 저장을 해줍니다.
업데이트 같은 경우
update_view.html.erb
아까 전에 post로 'real_update/:post_id' => "home#real"
form 의 액션을 살펴보면 @one_post의 id를 뒤에 루비코드로 작성시켜줍니다.
'Web 개발 > Ruby on Rails' 카테고리의 다른 글
gem 정리 (0) | 2017.07.22 |
---|---|
게시판을 만들어보자. 2편 모델을 이용한 DB구축 (0) | 2017.01.27 |
게시판을 만들어보자. 1편 쿼리를 받아보자. (0) | 2017.01.27 |
로또 번호 추첨 웹사이트를 만들어보자 (0) | 2017.01.19 |
c9 개발환경 (0) | 2016.08.08 |