У меня возникли проблемы с тестированием определенных почтовых индексов в определенных адресах. У меня есть проблема, которая наследуется и проверяется в модели. Он исправляет еще одну проблему, когда пользователи вводят почтовые индексы по умолчанию, которые не соответствуют состояниям, в которых они находятся. Однако мне в конечном итоге необходимо выполнить миграцию, чтобы исправить любые почтовые коды, которые были испорчены до этого момента. Это подводит меня к моей проблеме. Есть ли способ протестировать конкретную проблему или метод, написанный в этой проблеме через консоль?Как протестировать метод рельсов через консоль рельсов
Моя забота ниже.
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