问题描述
我有以下哈希值:
h = {
forms: {
version1: {
href: {
en: 'https://form1_en.example.org',de: 'https://form1_de.example.org'
}
},version2: {
href: {
en: 'https://form2_en.example.org',de: 'https://form2_de.example.org'
}
}
}
}
我正在尝试访问用户当前语言环境的verion1 href。所以我要做的是:
Proj.config.forms.dig('version1','href',I18n.locale)
但是,即使 I18n.locale 返回en,这也会导致 nil 。
但是,它可以很好地工作并返回正确的href。
Proj.config.forms.dig('version1','en')
我在这里做错了什么?我不能将 I18n.locale 与hash#dig结合使用吗?
解决方法
我认为可能的问题可能是如果I18n.locale
返回:en
而不是'en'
。在这种情况下,您可以通过以下几种方法解决它:
Proj.config.forms.dig('version1','href',I18n.locale.to_s)
或
Proj.config.forms.with_indifferent_access.dig('version1',I18n.locale)