如何使用 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)