Ich habe Probleme beim Testen bestimmter Postleitzahlen an bestimmten Adressen. Ich habe ein Anliegen, das in einem Modell vererbt und validiert wird. Es behebt ein weiteres Problem von Benutzern, die Standard-Postleitzahlen eingeben, die nicht mit den Zuständen übereinstimmen, in denen sie sich befinden. Ich muss jedoch letztendlich eine Migration ausführen, um alle bis dahin fehlerhaften Postleitzahlen zu reparieren. Was mich zu meinem Problem bringt. Gibt es eine Möglichkeit, ein bestimmtes Anliegen oder eine Methode, die in dieser Angelegenheit geschrieben wurde, überhaupt über die Konsole zu testen?So testen Sie eine Schienenmethode über die Schienenkonsole
Mein Anliegen ist unten.
module StateMatchesZipCodeConcern
extend ActiveSupport::Concern
def verify_zip_matches_state
return unless zip.present? && state.present?
state_search_result = query_zip_code
unless state_search_result.nil?
return if state_search_result.upcase == state.upcase
return if validate_against_multi_state_zip_codes
end
errors[:base] << "Please verify the address you've submitted. The postal code #{zip.upcase} is not valid for the state of #{state.upcase}"
false
end
private
def query_zip_code
tries ||= 3
Geocoder.search(zip).map(&:state_code).keep_if { |x| Address::STATES.values.include?(x) }.first
rescue Geocoder::OverQueryLimitError, Timeout::Error
retry unless (tries -= 1).zero?
end
def validate_against_multi_state_zip_codes
::Address::MULTI_STATE_ZIP_CODES[zip].try(:include?, state)
end
end
Ich habe User.last.address.validate_against_multi_state_zip_codes?
versucht und aufzuwickeln mit einem Verfahren fehlt. Würde jemand wissen, was ich hier vermisse?
Sie sind genial! Ich danke dir sehr! – kdweber89
http://i.imgur.com/9ld8MlW.gif – DiegoSalazar