【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에서 독자적인 컬럼을 추가해 사용하는 방법의 소개였습니다.
Reference
이 문제에 관하여(【Rails6】devise에서 독자적인 컬럼을 추가하여 사용하는 방법 ④), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kamataku/items/c8a15875517dd56a37e8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)