2

我有一个这样的嵌套哈希:

  LANGUAGE_DETAILS =  {
                       BG: {
                              Name: 'Български',
                              Flag: ''
                           },
                       EN: {
                              Name: 'English',
                              Flag: ''
                           },
                       RU: {
                              Name: 'Руский',
                              Flag: ''
                           },
                       UK: {
                              Name: 'Украински',
                              Flag: ''
                           }
                    }

并且需要将其格式化为以下哈希:

 {
      BG: 'Български',
      EN: 'English',
      RU: 'Руский',
      UK: 'Украински'
  }

为了将其用作 simple_form 输入参数,如下所示:

<%= f.input :language_code, collection: SecurityUser::LANGUAGE_DETAILS,
            label_method: :last,
            value_method: :first,
            as: :radio_buttons , label: 'Choose language' %>

在这种情况下,有没有办法将 SecurityUser::LANGUAGE_DETAILS 哈希转换为新哈希,或者我应该在模型中创建手头的哈希?

4

1 回答 1

2

你可以这样做:

Hash[LANGUAGE_DETAILS.map{|k, h| [k, h[:Name]]}]
于 2013-05-15T22:45:09.397 回答