노래하듯 이야기하고, 춤추듯 정복하라.

[Ruby & Rails] Rails의 devise gem 사용하기 본문

프로그래밍/Ruby & Rails

[Ruby & Rails] Rails의 devise gem 사용하기

hyeoke 2018. 7. 5. 23:56

#rails gem


rails의 gem은 nodejs을 해보신 분이시라면 npm, django를 해보신 분이라면 pip를 생각하시면 이해가 쉽다. rails의 정식 모듈들, 그리고 일반 사용자들이 더 편한 개발을 위해 직접개발해서 올린 많은 gem들이 있는데, 터미널 창에 gem install gem_name 의 명령을 통해 설치할 수 있따. 


#rails의 'devise' gem


rails에서는 간편한 인증을 구현하기 위한 devise라는 gem이 있다. 기본적으로 email과 password, password_confirm 의 구조로 되어 있으며 rails g migration add_?_to_model 을 통해 추가적인 유저 정보를 넣을 수 있다.


github => https://github.com/plataformatec/devise/

gem => https://rubygems.org/gems/devise


#devise gem 사용하기


- 1. 설치

$ rails g devise:install

- 2. 설정(config/environments/development.rb 에 아래 코드 추가)

config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

- 3.

$ rails g devise:views

- 4. 루트 path 추가 (routes.rb)

root "root#path"

- 5. 컨트롤러 수정하기

new와 create 액션

# new action
@post = current_user.pins.build

# create action
@post = current_user.pins.build(post_params)


current_user.products.build


#템플릿 확인하기


우선 템플릿을 확인하기 전에 우리가 설치한 user라는 devise model의 라우팅을 알아내야 한다. user 모델의 라우팅은 우리가 rails g devise user 을 실행함과 동시에 rails의 devise gem이 자동으로 설정해 주었을 것이다.


rake routes | grep user


우리는 위의 명령어로 아래와 같은 user 모델의 라우팅 구조를 파악할 수 있다.



http://localhost:3000/users/sign_inhttp://localhost:3000/users/sign_up 을 접속해보면 회원가입과 로그인 페이지를 확인할 수 있다.


- 회원가입 페이지


 

기본적으로 devise 모델이서는 이메일과 패스워드 필드만 제공하지만 위는 필자가 nickname 필드를 추가한 것이다. 이것에 대한 자세한 방법은 추후 기회가 된다면 이어서 포스팅 하도록 하겠다. 유저 모델을 성공적으로 설치했다면 다음으로 중요한 부분은 rails g devise:views를 터미널에 실행해 주어야 하는데, 이것을 실행시켜야 devise의 view 파일들이 프로젝트 폴더에 생긴다.


Comments