Поиск модели данного ценового диапазона в разных валютах
Сценарий:
продукты отображаются в указанной пользователем валюте, в то время как каждый продукт имеет собственную исходную валюту (может быть такой же, как указано пользователем, может быть любой другой валютой)
пользователь хочет искать товары с определенным ценовым диапазоном (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)