고안

2017-12-20 4 views
0

내부 전역 변수를 변경하는 방법 내가 이것을 변경하려면 (devise.rb에 정의) :고안

@@reset_password_keys = [:email] 

에이 결국 (required_attributes로)를 사용

@@reset_password_keys = [:email, :role] 

authenticatable.rb에 정의 된 아래의 방법으로 사용자를 조회 할 수 있습니다.

재설정 암호 양식에서 emailrole 속성을 보내려면이 방법을 사용하고 싶습니다.

사용법 : 당신은 당신의 config/initializers/devise.rb 파일을 변경해야합니다

def find_or_initialize_with_errors(required_attributes, attributes, error=:invalid) #:nodoc: 
    attributes = if attributes.respond_to? :permit! 
    attributes.slice(*required_attributes).permit!.to_h.with_indifferent_access 
    else 
    attributes.with_indifferent_access.slice(*required_attributes) 
    end 
    attributes.delete_if { |key, value| value.blank? } 

    if attributes.size == required_attributes.size 
    record = find_first_by_auth_conditions(attributes) 
    end 

    unless record 
    record = new 

    required_attributes.each do |key| 
     value = attributes[key] 
     record.send("#{key}=", value) 
     record.errors.add(key, value.present? ? error : :blank) 
    end 
    end 

    record 
end 

답변