ruby - 从 Ruby MAP 获取键和值
问题描述
我想使用 Ruby MAP 来获取数据:
PAYMENT_TYPE_TO_CURRENCY_AND_COUNTRY_MAPPING = {
zimpler: { 'EUR' => ['FI'], 'SEK' => ['SE'] },
qiwi: { 'EUR' => ['RU', 'KZ'], 'RUB' => ['RU'], 'KZT' => ['KZ'], 'USD' => ['UA'] },
payu: { 'CZK' => ['CZ'], 'PLN' => ['PL']},
entercash: { 'EUR' => ['AT', 'DE', 'FI'], 'SEK' => ['SE'] },
carulla: { 'USD' => ['CO'] }
}
我想使用 MAP 中的上述数据创建存根:
GirogateRequestBuilder::PAYMENT_TYPE_TO_CURRENCY_AND_COUNTRY_MAPPING.keys.each do |payment_method|
stub_request(:post, /.*/).
with(:body => "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n
<payment_transaction>\n
<transaction_type>#{payment_method.key}</transaction_type>\n
<transaction_id>/.*/</transaction_id>\n
<usage>New iPad</usage>\n
<currency>#{payment_method.get here currency}</currency>\n
<billing_address>\n
<first_name>Barney</first_name>\n
<country>#{payment_method.get here country}</country>\n
<state/>\n
</billing_address>\n
:headers => {'Accept'=>'*/*', 'Authorization'=>/.*/, 'Cache-Control'=>'no-cache', 'Content-Type'=>'application/xml'})
.to_return(status: 200, body: successful_response_file)
end
如何从地图中获取正确的值?
解决方案
只需使用PAYMENT_TYPE_TO_CURRENCY_AND_COUNTRY_MAPPING.each do |key, value|
:
PAYMENT_TYPE_TO_CURRENCY_AND_COUNTRY_MAPPING.each do |key, value|
# key = :zimpler
# value = { 'EUR' => ['FI'], 'SEK' => ['SE'] }
推荐阅读
- spring - 单元测试:使用 SpringApplication.run 模拟 SpringBootApplication 主类
- git - gitignore 过滤器 - 如何添加远程配置?
- java - Apollo Java GraphQL 客户端:generateApolloSources 失败
- javascript - Angular 在使用计时器时看不到变量值
- java - 从文件中检索的字符串内容在连接或相等检查期间消失
- java - Java ProcessBuilder 无法启动 GNU 屏幕
- c - CS50 的拼写器无法处理最基本的单词
- devops - artifactory.service 的作业失败
- reactjs - 如何使用 SPFx 中的 React 挂钩从孙组件强制刷新 GrandParent 组件
- .net - 表单识别器 API | 从 11.05.2020 开始修复 | 带有空字段的客户赞美结果