[RUBY-ON-RAILS] 사용자 정의 필드 / 레일과 고안 열 추가 4
RUBY-ON-RAILS사용자 정의 필드 / 레일과 고안 열 추가 4
나는 및 레일 4 (유증 보석을 사용) 내 사용자 모델에 FULL_NAME 필드 / 열을 추가하려고 시도하고있다.
예제의 대부분은 온라인 attr_accessible를 사용하는 것이 좋습니다,하지만이 레일 4에서 다르게 접근해야처럼 소리가 난다.
어떻게 사용자 모델에 FULL_NAME을 추가? 나는 성공적으로 마이그레이션을 실행 할 수있었습니다.
파일 : 마이그레이션> add_full_name_to_users을
class AddFullNameToUsers < ActiveRecord::Migration
def change
add_column :users, :full_name, :string
end
end
파일 : 등록> 응용 프로그램 / 뷰 / 궁리 / 등록 / new.html
.
.
.
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
<%= devise_error_messages! %>
<%= f.label :full_name %>
<%= f.text_field :full_name, :autofocus => true %>
<%= f.label :email %>
<%= f.email_field :email %>
.
.
.
해결법
-
==============================
1.모델은 FULL_NAME 속성이 후에는 #sign_up에 대한 매개 변수를 허용 구성해야하고 고안 작업을 #account_update 것입니다.
모델은 FULL_NAME 속성이 후에는 #sign_up에 대한 매개 변수를 허용 구성해야하고 고안 작업을 #account_update 것입니다.
class ApplicationController < ActionController::Base before_action :configure_devise_permitted_parameters, if: :devise_controller? protected def configure_devise_permitted_parameters registration_params = [:full_name, :email, :password, :password_confirmation] if params[:action] == 'update' devise_parameter_sanitizer.for(:account_update) do |u| u.permit(registration_params << :current_password) end elsif params[:action] == 'create' devise_parameter_sanitizer.for(:sign_up) do |u| u.permit(registration_params) end end end end
-
==============================
2.이 솔루션은 sign_up 및 업데이트 작업, 작동합니다 :
이 솔루션은 sign_up 및 업데이트 작업, 작동합니다 :
class ApplicationController < ActionController::Base before_filter :configure_permitted_parameters, if: :devise_controller? protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:full_name]) devise_parameter_sanitizer.permit(:account_update, keys: [:full_name]) end end
-
==============================
3.유증 문서에서 :
유증 문서에서 :
사용자의 요구에 맞는 접근 방법을 찾기 위해 아래의 URL을 확인해야합니다 : https://github.com/plataformatec/devise#strong-parameters
-
==============================
4.유증 대신 attr_accessible에 대한 강한 매개 변수를 사용합니다. 이렇게하려면 콘텐츠와 새로운 초기화를 만들 :
유증 대신 attr_accessible에 대한 강한 매개 변수를 사용합니다. 이렇게하려면 콘텐츠와 새로운 초기화를 만들 :
DeviseController.class_eval do def resource_params unless params[resource_name].blank? params.require(resource_name).permit(:email, :password, :password_confirmation, :remember_me) end end end
from https://stackoverflow.com/questions/16297797/add-custom-field-column-to-devise-with-rails-4 by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 어떻게 레일에서 날짜를 확인합니까? (0) | 2020.02.08 |
---|---|
[RUBY-ON-RAILS] 수정 트위터 부트 스트랩 네비게이션 바 (0) | 2020.02.08 |
[RUBY-ON-RAILS] 어떻게 레일 인스턴스 변수는 뷰에 전달된다? (0) | 2020.02.08 |
[RUBY-ON-RAILS] 호환되지 않는 문자 인코딩 : ASCII-8BIT와 UTF-8 (0) | 2020.02.08 |
[RUBY-ON-RAILS] 레일의 열 이름에 대한 별칭 (0) | 2020.02.08 |