【Rails6】devise에서 독자적인 컬럼을 추가하여 사용하는 방법 ④

지금까지



지금까지 devise 설치, User 모델 작성, View 작성, Controller 작성, Model 사용자 정의, Routes 편집을 수행했습니다.

이번에는 Devise 설정(독자적인 컬럼으로 로그인할 수 있도록 한다)을 실시해 가고 싶습니다.

▽전회의 기사는 이쪽▽
【Rails6】devise에서 독자적인 컬럼을 추가하여 사용하는 방법 ①

【Rails6】devise에서 독자적인 컬럼을 추가하여 사용하는 방법 ②

【Rails6】devise에서 독자적인 컬럼을 추가하여 사용하는 방법 ③

① Devise 설정


/config/initializers/devise.rb 파일을 편집합니다.

이번 편집하는 내용은 로그인의 인증하는 키를 email 에서 user_code 로 하도록 합니다.
주석 처리되었으므로 #를 제거합니다.

devise.rb_편집 전
# ==> Configuration for any authentication mechanism
  # Configure which keys are used when authenticating a user. The default is
  # just :email. You can configure it to use [:username, :subdomain], so for
  # authenticating a user, both parameters are required. Remember that those
  # parameters are used only when authenticating and not when retrieving from
  # session. If you need permissions, you should implement that in a before filter.
  # You can also supply a hash where the value is a boolean determining whether
  # or not authentication should be aborted when the value is not present.
  # config.authentication_keys = [:email]

devise.rb_편집 후
# ==> Configuration for any authentication mechanism
  # Configure which keys are used when authenticating a user. The default is
  # just :email. You can configure it to use [:username, :subdomain], so for
  # authenticating a user, both parameters are required. Remember that those
  # parameters are used only when authenticating and not when retrieving from
  # session. If you need permissions, you should implement that in a before filter.
  # You can also supply a hash where the value is a boolean determining whether
  # or not authentication should be aborted when the value is not present.
  config.authentication_keys = [:user_code]

위로 편집하면 로그인 인증 키가 변경됩니다.

전회까지, 파일을 마루 마루 올려 있었습니다만, 길어지기 때문에 편집하는 부분만을 기재합니다.

② 스트롱 파라미터 추가



이번 간이라고 생각되는 것은 여기 부분입니다.

지금까지의 커스터마이즈·설정으로, 화면의 표시는 정상적으로 행해집니다만,
이 상태에서는 독자적인 컬럼이 화면에 입력한 값이 정상적으로 컨트롤러에 전달할 수 없습니다.

Devise에서는 스트롱 파라미터를 추가해야 합니다.

스트롱 파라미터의 추가는 /app/controllers/application_controller.rb 를 편집합니다.

application_controller.rb_편집 전
class ApplicationController < ActionController::Base

end

application_controller.rb_편집 후
class ApplicationController < ActionController::Base
    before_action :configure_permitted_parameters, if: :devise_controller? # before_action でメゾット呼び出し

    protected # protected内にメゾットを記述

    def configure_permitted_parameters # メゾット
        devise_parameter_sanitizer.permit(:sign_up, keys: [:user_code, :user_last_name, :user_first_name] )
        devise_parameter_sanitizer.permit(:sign_in, keys: [:user_code])
        devise_parameter_sanitizer.permit(:account_update, keys: [:user_code, :user_last_name, :user_first_name])
    end

end



아니
종류
설명


1
sing_up
등록시

2
sing_in
로그인 시

3
account_update
사용자 정보 업데이트 시


위의 패턴 설명을 표로 해 보았습니다.
3종류의 처리시에 스트롱 파라미터가 통과하도록, 추가합니다.
devise_parameter_sanitizer.permit(:処理種類, keys: [:カラム名, :カラム名])

지금까지는 자신의 열을 추가하고 devise를 사용할 수 있습니다.



그리고는, 로그인 페이지등의 HTML과 CSS를 만들어, 실용성이 있는 화면을 작성하면 완성입니다.

마지막으로



devise의 사용 방법 등은 많이 인터넷에 정보가 있습니다만, 이번은 「자신 컬럼의 추가와 로그인시에 독자적인 컬럼으로 실시할 수 있도록 한다」라고 하는 테마로, 처음부터 설명해 왔습니다.
어느 쪽인가라고 하면, Rails 초보자의 방향에 가까웠던 것일까라고 생각합니다만, devise의 커스터마이즈를 하고 싶은 분도 참고가 될까라고 생각하므로, 꼭 참고로 해 보세요.
기사를 여러 번 나누었습니다만 이상, devise에서 독자적인 컬럼을 추가해 사용하는 방법의 소개였습니다.

좋은 웹페이지 즐겨찾기