20201231(목)
2020년의 마지막... 많은 시간 공부하고 집중하지도 않았지만... 책상에 앉아있는 내가 자랑스럽다.
2020-12-31
1. 학습 날짜
2020-12-31
2. 학습 시간
11:00 ~ 15:00, 21:00 ~ 22:00
3. 학습 범위 및 주제
루비온레일즈 간단한 사이트 만들어보기
4. 학습 목표
로그인한 유저만 게시물 작성할 수 있게 수정하기
로그인하면 유저는 자신의 프로필을 볼 수 있게 하기. RESTful을 헤치지 않는 방법으로
5. 과제 제출
x
6. 상세 학습 내용
로그인한 유저만 게시물 작성할 수 있게 만들기
게시글을 작성하는데 이상하게 계속 예외가 던져진다.
예외의 이름은
User must exist
이었다. 스키마 파일을 보고 문제점을 발견했다.문제는 게시물의 속성으로
user_id
를 FK로 만들었기 때문이다. 그리고 이 user_id는 nullable 하지 않으므로 게시물을 작성하기 위해서는 user_id 값이 항상 채워져야 한다.user_id 를 채우는데 2가지 문제가 있었다. 하나는 user_id를 어떻게 가져오냐이고 두 번째는 user_id를 어떻게 전송하냐
먼저
user_id
를 가져오는 방법은 현재session
을 가져오면 되는 아주 간단한 문제였다. 따라서session
을 이용해서 현재 세션의user_id
를 가져왔다.user_id
를 어떻게form
형태로 전송하냐 였는데, 이 또한 간단하게hidden_field
를 이용해서 해결했다.
로그인 한 상태에서 자신의 profile 보기
기존에 user의 프로필을 보기 위해서는
/users/1
처럼id
값을 줘서 들어가야만 했다.만약 로그인한 상태에서 자신의 profile을 보는데도 저런 식으로
URI
를 입력해서 들어간다? 이건 아름답지 못하다.보다 아름다운 방법은 뭘까? 내가 생각한 방법은
만약 로그인한 상태라면
/profile
에 접속하면 바로 자신의 상태를 볼 수 있는것. 그거야 말로 아름다운 방법이라고 생각한다.따라서 이런 방법을 정의해줘야 하는데, 어떻게 하면 좋을까?
라우팅을 손보자.
resource profile
을 선언하고 이 라우팅에 대한 컨트롤러와 액션으로user
와show
를 연결시켜줬다.
결과 로그인한 상태에서
/profile
에 접근하면 유저는 자신의 프로필을localhost:3000/profile
과 같이 아름다운 모습으로 확인할 수 있다.
액티브레코드를 콘솔에서 사용하는 법
오늘 post를 생성하는데 계속 문제가 생겨서(user_id를 넣지 않아서 생긴 문제였음) 이 문제를 해결하려고 콘솔에서 접근해서 시도를 해보려고 했는데 뭔가 이상했음
원인은
액티브 레코드
를 사용해서 접근하려고 했는데, 나는 db로 접근했던것rails dbconsole
로 액티브 레코드를 다루려고 했던것이다.따라서 조금 알아봤고 터미널에서 액티브 레코드에 접근하기 위해서는
rails console
을 사용해야함을 알았따.그리고 이 상태에서의 명령어는 ROR에서 하는것과 똑같이
new, save, update ...
등을 이용하면 된다.
7. 오늘 학습 내용에 대한 개인적인 총평
2020년의 마지막날이었다.... 정말 많은 일이 있었다. 이제와서 생각해보면 정말로 많은 기회가 있었다. 그리고 난 그 수많은 기회를 다 날린것만 같다.... 더 열심히 할 수 있었는데 열심히 하지 않았다. 뭔가 죄인이 된 느낌이다. 2021년부터는 더욱 정진해야겠다.
8. 다음 학습 계획
유저 생성시 보안처리하기
리뷰 관련 설계 다시하고 작성하기
Last updated