본문 바로가기

Back_end/Ruby

[ Gem] Devise

Gem - Devise



'Gem' 이란?





 Gem은 쉽게 말해 어떠한 기능을 구현할 수 있게 미리 짜여진
 하나의 루비 프로젝트 파일이라고 생각하시면 됩니다. 
각 Gem은 이름, 버전, 플랫폼을 가지고 있습니다. 
예를 들어 rake Gem은 0.8.7버전 (2009년 5월 기준)을 가지고 있고 플렛폼은 ruby입니다. 
이 말은 Ruby가 돌아가는 어떤 플렛폼에서도 사용 가능하다는 의미입니다.

다시 말해서 이미 사람들이 만들어 놓은 다양한 gem file들이 있고,
필요한 gem file을 설치해 줌으로서 웹사이트를 만들 때 필요한 기능들을 빠르게 구현할 수 있습니다.

 예를 들어 이번 게시글에서 다를 Devise라는 Gem이 
회원가입과 로그인에 필요한 DB부터 간단한 View영역까지 
최소한의 기능들을 미리 구현해주는것 처럼 말이죠.

 Gem에대한 설명은 여기서 멈추고 
이번 Newbython에서 사용했던 Devise라는 Gem에대한 
사용법 집중분석 포스팅을 시작해 보겠습니다.


Home파일 작성




미리 home을 만들고 시작하는것이 좋겠죠?
우선 프로젝트 폴더안에 home 컨트롤러와 home html 파일을 생성합니다.


$ rails g controller home index





Gemfile의 작성




레일스 프로젝트의 루트에 위치한 Gemfile을 열어 아래와 같이 추가한 후,

 다음문구 추가   |   gem 'devise'  | 





번들 인스톨합니다.


$ bundle install


위의 명령어를 입력시 아래와 같은 화면이 나오면 성공!



이렇게 되면 Devise 잼을 사용할 준비가 완료가 되었습니다. (잼설치 완료)




Devise 설정





콘솔(console)창에 다음과 같이 입력해 줍니다.


$ rails generate devise:install



입력이 끝나면 콘솔창에 다음과 같은 문구가 나타납니다.






필요한 내용만 골라 콘솔이 시키는대로 설정해 주면 되는데, 

일반적으로 2번과 4번만 설정을 해줍니다.


우선 2, 4번 설정은 조금 뒤에 하기로 하고,  

회원가입을 했을 때 회원정보가 들어갈 모델을 먼저 만들어 보겠습니다.

모델 이름을 user로 해서 아래와 같이 입력해 보겠습니다. 




$ rails g devise user



그럼 아래처럼 models 폴더에 user.rb가 생긴걸 볼 수 있습니다.






모델은 만들었고, 이제 DB에 올려봅시다.

콘솔창에 아래와 같이 입력해 줍니다.




$ rake db:migrate




이렇게 모델과 DB를 구축했으니

이제 남은건 deivse를 사용하기 위해

route.rb파일에서 경로설정과, 

view파일들을 생성하는일만 남았습니다.




이제 아까 설정하기로 했던 2번과 4번 설정을 끝맺어 줍니다.




[ 2번 설정 ]


config 폴더안에 routes 파일 안에 들어가서 경로를 다음과 같이 설정해 줍니다.




 다음문구 추가   |   root 'home#index'  | 


(이때 home 부분은 페이지가 자동으로 반환할 내용을 담은 장소이기 때문에 

맨 처음에 home 컨트롤러를 만들때 home이 아니라 다른이름으로 설정하였으면,

그 이름으로 설정해 주면 됩니다.)






그 다음에 gem에서 지원해주는 로그인 페이지(view)단을 생성합니다.



[ 4번 설정 ]


콘솔창에 다음과 같이 입력해 줍니다.


$ rails g devise:views //devise 이름으로 폴더생성

$ rails g devise:views users //users 이름으로 폴더생성


입력시 다음과 같이 view 폴더에 devise 폴더가 생성됩니다.






이 과정을 잘 진행해 주면 gem이 알아서 view 공간에 login(로그인), join(
회원가입), edit(정보수정) 파일을 만들어 줍니다. 


*login(로그인)



*join(회원가입)



*edit(정보수정)




그럼 이제 devise를 이용해 방금만든 로그인 페이지를 사용하기 위해

 다시 view폴더에 home 폴더로 돌아가 index파일을 조금 수정해 봅시다.


위에 사진에서 강조된 부분처럼 

로그인 페이지 주소를 어떻게 찾았는지 궁금하다면


콘솔창에 rake routes라고 아래와 같이 입력해주면 찾을 수 있습니다.

$ rake routes

 


설정 후 결과물을 확인해 보면


이렇게 잘 작동하는 모습을 볼 수 있습니다.



Devise로 생성한 Users의 뷰를 수정하고 싶을 때




config -> initializers ->devise.rb 파일에 들어가서

`#config.scoped_views = false`를 찾아서 다음과 같이

`config.scoped_views = true`로 수정해 주면 

view파일 수정이 가능해 집니다.



'Back_end > Ruby' 카테고리의 다른 글

[ Gem ] simple_calendar  (0) 2018.07.27
[ Gem ] Bootstrap  (0) 2018.07.24