Изменить параметр, если ключ присутствует в MAP - PullRequest
0 голосов
/ 19 сентября 2018

Я хочу изменить этот хеш, только если ключ присутствует в MAP.Я попробовал это:

FIXED_COUNTRY_TO_PHONE = { 
    'FI' => '+358501111',
    'RU' => '4019900780', 
    'SE' => '+4672345678',
    'UA' => '0123456789',
    'KZ' => '0123456789'  
  }.freeze


def base_params_for(payment_type)

    { payment_type:   payment_type,  
      currency:       currency,
      country:        country,
      amount:         amount_for(currency) }    

    params[:customer_phone] = FIXED_COUNTRY_TO_PHONE[country] if FIXED_COUNTRY_TO_PHONE.has_key? 'FI'
end

Как я могу изменить параметр :customer_phone только при наличии ключа?

1 Ответ

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

Вы можете использовать tap здесь:

{ 
  payment_type:   payment_type,
  currency:       currency,
  country:        country,
  amount:         amount_for(currency) 
}.tap do |params|
  if FIXED_COUNTRY_TO_PHONE.has_key?(country)
    params[:customer_phone] = FIXED_COUNTRY_TO_PHONE[country] 
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...