책만 보고 있는건 죄악이라는 어느 선배의 말이 떠올라서 간단한 사이트를 만들어 보기로 했습니다.
관리자만 제품을 등록할 수 있고, 사용자는 제품정보만 볼 수 있는 아주 간단한 온라인 Catalogue 사이트 입니다.

가장 큰 목표는 '올바로 작동하는 좋은 소스(?)'이지만 아마도 좋은 소스는 기대하기 힘들 것 같습니다.
우선 정상적으로 작동하는 것부터 하고, 이 후에 더 깔끔하게 만들 수 있는 방법을 고민 할 예정입니다.

첫번째 도전은 관리자 로그인입니다.
로그인 폼을 만들고 액션을 해결할 컨트롤러를 생성하고,  폼에서 전달받은 내용으로 관리자임을 확인하고
쿠키를 만든 후 관리자 페이지로 이동하거나, 혹은 로그인 페이지로 다시 이동하는 기능을 합니다. 
세션이 아닌 쿠키를 택한 이유는 제가 쿠키에 관련된 공부를 먼저 하고 싶기때문이다. ^^

우선 폼을 위한 html파일을 만들었습니다.
rails 프로젝트를 만든 이후에 '/public/admin/logn.html'를 만듭니다.
html안에는 간단한 폼만 있습니다.


action의 값을 '/login/admin_login'으로 정했습니다.
이제 Login 컨트롤러를 만들고 admin_login 메서드/뷰 를 추가하는 작업을 진행합니다.


성공했을 경우에는 Admin 컨트롤러를 호출하게 됩니다.
이제 Admin컨트롤러를 만들고 main 메서드/뷰를 만들겠습니다. 


Admin 컨트롤러를 통해서 만나는 뷰페지이지 들은  'admin_page' 레이아웃을 기본으로 합니다.
admin_page 레이아웃을 '/app/view/layouts/admin_page.rhtml'로 생성합니다.

'<%= @content_for_layout %>'에 지정된 뷰가 들어가게 됩니다.
admin/main으로 호출했으니 '/app/view/admin/main.rhtml'이 저 자리에 들어가게 됩니다.
Admin 컨트롤러에는 'before_filter'이 포함되어 있습니다.
단어 그대로 항상 먼저 실행되게 됩니다. 이렇게 함으로 /admin/ ... 으로 시작하는 모든 페이지는 쿠키값을 통해서 admin 로그인 여부를 확인하게 됩니다.

익숙한 언어로 만든다면 눈깜짝할 사이에 해결할 수도 있겠지만 새로운 환경으로 도전하려고 하니 하루가 꼬박 흘려버렸습니다. 다음은 엑티브 레코그를 이용한 DB프로그램에 도전합니다. ^^

Posted by 달빛변신
TAG ,

댓글을 달아 주세요