Поиск модели данного ценового диапазона в разных валютах

Сценарий:

продукты отображаются в указанной пользователем валюте, в то время как каждый продукт имеет собственную исходную валюту (может быть такой же, как указано пользователем, может быть любой другой валютой)

пользователь хочет искать товары с определенным ценовым диапазоном (10 - 100) в указанной пользователем валюте (допустим, в долларах США)

Я использую Postgres и Rails. У каждого продукта есть price_amount и валюта для исходной валюты.

Эта проблема Поскольку каждый продукт может быть в любой валюте, мне нужно нормализовать все продукты, чтобы они были в указанной пользователем валюте, чтобы я мог видеть, какой продукт находится в диапазоне.

У меня есть курс обмена для каждой пары поддерживаемых валют. Но запрос будет действительно сложным, поэтому мне интересно, есть ли что-то более эффективное?

currencies.map do |currency|
 rate = ex_rate(user_specific_currency, currency)
 query = [query , "products.price * #{rate} <= user_max AND products.price * #{rate} >= user_min AND products.currency = '#{currency}'"].join(" OR ") 
end

Product.where(query)

Ответы на вопрос(2)

Ваш ответ на вопрос