Получить имя ключа от карты - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть эта структура Ruby

AMOUNT_LIMITS = {
    qqpay: {
      cny: { min: 10_00,     max: 10_00_00 }
    },
    online_banking: {
      cny: { min: 10_00,     max: 50_000_00 },
      thb: { min: 10_00,     max: 500_000_00 },
      idr: { min: 10_000_00, max: 50_000_000_00 },
      myr: { min: 10_00,     max: 10_000_00 }
    },
    bank_payout: {          
      thb: { min: 350_00,    max: 350_00 },
      idr: { min: 50_000_00, smax: 50_000_00 },
      myr: { min: 50_00,     max: 50_00 }
    }

Как я могу получить тип валюты с карты? Например:

AMOUNT_LIMITS[transaction_type.to_sym].sample

Мне нужен только ключ, например cny в виде строки.

1 Ответ

0 голосов
/ 12 сентября 2018

Чтобы получить образец с весами:

AMOUNT_LIMITS.values.flat_map { |h| h.map(&:first) }.sample.to_s
#⇒ 'thb'

Чтобы получить любую валюту с такой же вероятностью, используйте uniq в середине:

AMOUNT_LIMITS.values.flat_map { |h| h.map(&:first) }.uniq.sample.to_s
#⇒ 'cny'

Чтобы получить валюту на основе типа транзакции:

AMOUNT_LIMITS[:onlibe_banking].keys.sample.to_s
#⇒ 'cny'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...