[rails] devise의 기본 정보
devise 배포 및 기본 정보
Why
devise에 관한 기사를 조사했을 때 devise의 컨트롤러를 만드는 기사 밖에 없고, application.controller만으로 완결시키고 싶었기 때문에. 또, 그 때에 devise가 디폴트로 가지는 범위를 모르고, 불필요한 컬럼이나 validation를 기술하고 있었기 때문에 에러의 해결에 시간이 걸렸기 때문에 이것을 참고해 주시면 좋겠습니다.
devise 도입
Gemfile(마지막 행)gem 'devise'
터미널# 現在のディレクトリが~/projects/pictweetであることを確認
% pwd
# Gemをインストール
% bundle install
터미널# サーバーを起動
% rails s
터미널# deviseの設定ファイルを作成
% rails g devise:install
터미널# deviseコマンドでUserモデルを作成
% rails g devise user
아래와 같이 devise_for :users가 들어 있으면 OK!
routes.rbRails.application.routes.draw do
devise_for :users
root to: 'tweets#index'
resources :tweets
end
다음은 테이블 만들기
터미널# マイグレーションを実行
% rails db:migrate
데이터베이스에 테이블이 만들어지면 OK!
마지막으로 아래도 잊지 않고!
터미널# 「ctrl + C」でローカルサーバーを終了
# 再度、ローカルサーバーを起動
% rails s
이것으로 바로 devise의 도입이 끝났으므로, 나머지는 마음대로 구현할 뿐입니다.
이번에는 기본 정보입니다 !!!
여기는 별로 관계가 없습니다만, validates로 name, email, password 밖에 걸지 않고 데이타베이스를 확인하면 password의 부분이 encrypted_password로 컬럼으로서 등록하고 있습니다. "validates에 encrypted_password가 없어?"라고 돌진하고 싶은 곳입니다만 encrypted_password는 패스워드를 암호화해 테이블에 보존한다고 하는 것이므로 validates는 password를 거는 것만으로 ok. 덧붙여서 password_confirmation도 validates를 걸지 않아서 ok.
이야기가 탈선했지만 여기
13행째에 주목.
devise를 설치하면 devise_parameter_sanitizer 메소드를 사용할 수 있습니다. devise에서 사용자 등록을 하는 경우에 사용할 수 있어 「특정의 컬럼을 허용하는」메소드가 됩니다. 이 메소드에 devise_parameter_sanitizer 메소드를 정의합니다.
devise_parameter_sanitizer 메소드
permit 메소드를 조합함으로써, devise에 정의되고 있는 스트롱 파라미터에 대해서, 스스로 새롭게 추가한 컬럼도 지정해 포함할 수 있습니다. 그래서 노멀한 신규 등록, 로그인 기능 정도라면 일부러 devise의 컨트롤러를 만들지 않아도 application.contoroller내에서 완결할 수 버립니다. (신규 등록 등으로 여러 페이지에 걸쳐 전환하는 경우 제대로 controller를 만드는 것이 좋다)
application.controller.rbprivate
def configure_permitted_parameters # メソッド名は慣習
# deviseのUserモデルにパラメーターを許可
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
end
14행째에 주목!
application.controller.rbdevise_parameter_sanitizer.permit(:sign_up, keys: [:name])
keys: 뒤에 오는 [ ]내에 :name 외에 본래 :email이나 :password 등을 넣어야 합니다. 하지만 devise의 디폴트로 뒤에서 마음대로 처리해 주기 때문에 여기는 : name만으로 ok!
여담
유효성 검사의 기본 해제 방법
이것을
application.controller.rbdevise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
이렇게 할 뿐!
application.controller.rbdevise :database_authenticatable, :registerable,
:recoverable, :rememberable
요약
devise는 간단하게 도입할 수 있어, 간단하게 신규 등록이나 로그인, 로그아웃 기능을 구현할 수 있는 훌륭한 gem입니다만, 그만큼 편리한 뒤에서는 다양한 디폴트가 마음대로 반영되어 버려 불필요한 에러등이 일어나기 쉬워지므로 최소한 간단한 디폴트의 소개를 했습니다.
Reference
이 문제에 관하여([rails] devise의 기본 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sagawashu/items/e29802d0d70bd16fdee9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
gem 'devise'
# 現在のディレクトリが~/projects/pictweetであることを確認
% pwd
# Gemをインストール
% bundle install
# サーバーを起動
% rails s
# deviseの設定ファイルを作成
% rails g devise:install
# deviseコマンドでUserモデルを作成
% rails g devise user
Rails.application.routes.draw do
devise_for :users
root to: 'tweets#index'
resources :tweets
end
# マイグレーションを実行
% rails db:migrate
# 「ctrl + C」でローカルサーバーを終了
# 再度、ローカルサーバーを起動
% rails s
여기는 별로 관계가 없습니다만, validates로 name, email, password 밖에 걸지 않고 데이타베이스를 확인하면 password의 부분이 encrypted_password로 컬럼으로서 등록하고 있습니다. "validates에 encrypted_password가 없어?"라고 돌진하고 싶은 곳입니다만 encrypted_password는 패스워드를 암호화해 테이블에 보존한다고 하는 것이므로 validates는 password를 거는 것만으로 ok. 덧붙여서 password_confirmation도 validates를 걸지 않아서 ok.
이야기가 탈선했지만 여기
13행째에 주목.
devise를 설치하면 devise_parameter_sanitizer 메소드를 사용할 수 있습니다. devise에서 사용자 등록을 하는 경우에 사용할 수 있어 「특정의 컬럼을 허용하는」메소드가 됩니다. 이 메소드에 devise_parameter_sanitizer 메소드를 정의합니다.
devise_parameter_sanitizer 메소드
permit 메소드를 조합함으로써, devise에 정의되고 있는 스트롱 파라미터에 대해서, 스스로 새롭게 추가한 컬럼도 지정해 포함할 수 있습니다. 그래서 노멀한 신규 등록, 로그인 기능 정도라면 일부러 devise의 컨트롤러를 만들지 않아도 application.contoroller내에서 완결할 수 버립니다. (신규 등록 등으로 여러 페이지에 걸쳐 전환하는 경우 제대로 controller를 만드는 것이 좋다)
application.controller.rbprivate
def configure_permitted_parameters # メソッド名は慣習
# deviseのUserモデルにパラメーターを許可
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
end
14행째에 주목!
application.controller.rbdevise_parameter_sanitizer.permit(:sign_up, keys: [:name])
keys: 뒤에 오는 [ ]내에 :name 외에 본래 :email이나 :password 등을 넣어야 합니다. 하지만 devise의 디폴트로 뒤에서 마음대로 처리해 주기 때문에 여기는 : name만으로 ok!
여담
유효성 검사의 기본 해제 방법
이것을
application.controller.rbdevise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
이렇게 할 뿐!
application.controller.rbdevise :database_authenticatable, :registerable,
:recoverable, :rememberable
요약
devise는 간단하게 도입할 수 있어, 간단하게 신규 등록이나 로그인, 로그아웃 기능을 구현할 수 있는 훌륭한 gem입니다만, 그만큼 편리한 뒤에서는 다양한 디폴트가 마음대로 반영되어 버려 불필요한 에러등이 일어나기 쉬워지므로 최소한 간단한 디폴트의 소개를 했습니다.
Reference
이 문제에 관하여([rails] devise의 기본 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sagawashu/items/e29802d0d70bd16fdee9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
private
def configure_permitted_parameters # メソッド名は慣習
# deviseのUserモデルにパラメーターを許可
devise_parameter_sanitizer.permit(:deviseの処理名, keys: [:許可するキー])
end
devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
유효성 검사의 기본 해제 방법
이것을
application.controller.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
이렇게 할 뿐!
application.controller.rb
devise :database_authenticatable, :registerable,
:recoverable, :rememberable
요약
devise는 간단하게 도입할 수 있어, 간단하게 신규 등록이나 로그인, 로그아웃 기능을 구현할 수 있는 훌륭한 gem입니다만, 그만큼 편리한 뒤에서는 다양한 디폴트가 마음대로 반영되어 버려 불필요한 에러등이 일어나기 쉬워지므로 최소한 간단한 디폴트의 소개를 했습니다.
Reference
이 문제에 관하여([rails] devise의 기본 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sagawashu/items/e29802d0d70bd16fdee9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여([rails] devise의 기본 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sagawashu/items/e29802d0d70bd16fdee9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)