如何使用 I18n.locale 和 Hash#dig
How to use I18n.locale with Hash#dig
我有以下哈希:
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)
但是,这会导致 nil,即使 I18n.locale returns en.
然而,这工作得很好并且 returns 正确的 href。
Proj.config.forms.dig('version1', 'href', 'en')
我在这里做错了什么?我不能将 I18n.locale 与 hash#dig 结合使用吗?
我认为可能的问题是 I18n.locale
returns :en
而不是 'en'
。这种情况可以通过以下几种方式解决:
Proj.config.forms.dig('version1', 'href', I18n.locale.to_s)
或
Proj.config.forms.with_indifferent_access.dig('version1', 'href', I18n.locale)
我有以下哈希:
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)
但是,这会导致 nil,即使 I18n.locale returns en.
然而,这工作得很好并且 returns 正确的 href。
Proj.config.forms.dig('version1', 'href', 'en')
我在这里做错了什么?我不能将 I18n.locale 与 hash#dig 结合使用吗?
我认为可能的问题是 I18n.locale
returns :en
而不是 'en'
。这种情况可以通过以下几种方式解决:
Proj.config.forms.dig('version1', 'href', I18n.locale.to_s)
或
Proj.config.forms.with_indifferent_access.dig('version1', 'href', I18n.locale)