特定の住所の特定の郵便番号をテストするのに問題があります。私は、モデルで継承され、検証される心配があります。それは、ユーザーが位置している状態と一致しないデフォルトの郵便番号を入力する別の問題を修正します。しかし、私は最終的に、この時点までに欠陥があった郵便番号を修正するために移行を実行する必要があります。それは私の問題に私をもたらします。特定の懸念事項をテストする方法はありますか?または、この問題でコンソールを使って書かれた方法はありますか?レールコンソールを使ってレールメソッドをテストする方法
私の懸念は以下の通りです。
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
私はUser.last.address.validate_against_multi_state_zip_codes?
を試してみましたが、欠落しています。誰かが私がここで行方不明を知っているだろうか?
あなたは素晴らしいです!どうもありがとうございます! – kdweber89
http://i.imgur.com/9ld8MlW.gif – DiegoSalazar