RubyMoney / money

A Ruby Library for dealing with money and currency conversion.
http://rubymoney.github.io/money
MIT License
2.73k stars 623 forks source link

No conversion rate known for 'CAD' -> 'USD' #1063

Closed isaiasnbc closed 6 months ago

isaiasnbc commented 10 months ago

Hey! :wave: Our system caught this error. It is happening sometimes

Error message:
No conversion rate known for 'CAD' -> 'USD'

current/vendor/bundle/ruby/3.0.0/gems/money-6.16.0/lib/money/bank/variable_exchange.rb:122:in `exchange_with'
current/vendor/bundle/ruby/3.0.0/gems/money-6.16.0/lib/money/money.rb:536:in `exchange_to'
current/vendor/bundle/ruby/3.0.0/gems/money-6.16.0/lib/money/money/arithmetic.rb:138:in `block (2 levels) in <module:Arithmetic>'
current/app/models/cart.rb:82:in `block in items_total'
current/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.7.4/lib/active_record/relation/delegation.rb:88:in `each'
current/vendor/bundle/ruby/3.0.0/gems/activerecord-6.1.7.4/lib/active_record/relation/delegation.rb:88:in `each'
current/app/models/cart.rb:82:in `reduce'
current/app/models/cart.rb:82:in `items_total'
current/app/serializers/cart_serializer.rb:28:in `total'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:394:in `read_attribute_for_serialization'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer/field.rb:25:in `value'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:339:in `block in attributes'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:336:in `each'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:336:in `each_with_object'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:336:in `attributes'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:407:in `attributes_hash'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model/serializer.rb:370:in `serializable_hash'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/adapter/attributes.rb:14:in `serializable_hash'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/adapter/base.rb:61:in `as_json'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/serializable_resource.rb:10:in `as_json'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/logging.rb:71:in `block (3 levels) in notify'
current/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.7.4/lib/active_support/callbacks.rb:117:in `block in run_callbacks'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/logging.rb:24:in `block (3 levels) in instrument_rendering'
current/vendor/bundle/ruby/3.0.0/gems/active_model_serializers-0.10.12/lib/active_model_serializers/logging.rb:81:in `block in notify_render'
current/vendor/bundle/ruby/3.0.0/gems/activesupport-6.1.7.4/lib/active_support/notifications.rb:203:in `block in instrument'
<truncated 111 additional frames>
semmons99 commented 6 months ago

perhaps you have an order of operations issue where your conversion tables are not available/populated yet. Money does not have default conversions.