비밀번호 재설정 작업 중에 우편 번호 유효성 검사를 생략해야합니다. 지금까지 내가 쓴 것은 다음과 같다.비밀번호 재설정 - 유효성 검사 건너 뛰기
User.rb
attr_accessor :email_confirmation, :user_role, :unit_user_property,
:skip_validation, :skip_zip_validation, :login
validates_format_of :zip,
with: /\A\d{5}-\d{4}|\A\d{5}\z/,
message: 'should be of the format 12345 or 12345-1234',
unless: :skip_zipcode_validation?
# Return true/false to validate zipcode
# Skips validation if this returns true
def skip_zipcode_validation?
skip_validation.present? || skip_zip_validation.present?
end
application_controller.rb
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
added_attrs = [:phone, :email, :password, :password_confirmation, :remember_me, :skip_zip_validation]
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(added_attrs) }
devise_parameter_sanitizer.for(:sign_in) { |u| u.permit(added_attrs) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(added_attrs) }
end
응용 프로그램/뷰/난 아직도 무엇입니까/암호/edit.html.erb
<%= f.hidden_field :skip_zip_validation, value: true %>
고안 그러나 비밀번호 재설정시 우편 번호 확인 오류가 발생했습니다. 디버깅시 skip_zip_validation 속성이 nil로 표시됩니다. 속성이 사용자에게 지정되지 않은 것 같습니다.
이 문제를 해결하는 방법에 대한 아이디어가 있습니까?
이미 추가했습니다. 업데이트 된 질문을 참조하십시오. – prajeesh
하나의 디버깅, skip_zip_validation 속성이 nil로 표시됩니다. – prajeesh