微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在Hash#dig

如何解决如何在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)

但是,即使 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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。