在哈希中隔离并显示特定元素



我当前正在编写一个测试,该测试解决了我拥有的记录的eligibility_settings。我很难从此哈希中删除一个具体元素之一。

特别是我想通过在改变特定玩家的最小年龄的其他功能的其他位置进行更改来测试,因此我真正试图测试的是eligibility_settings.min_age。但是我在测试中遇到了麻烦,将其隔离出来。

我的哈希看起来像这个

{
                    :name => "player1",
                   :label => "redTeam_1_1",
                   :group => "adult",
                    :teamId => 7,
    :eligibility_settings => {
                          "min_age" => 18,
                    "player_gender" => "female",
              "union_players_only"  => true
    }
}

但是,当我尝试通过此哈希进行循环时,我很难隔离该元素。

我尝试了

之类的东西
team.get_players.first.map do |settings, value|
  value.tap do |x, y|
    y[3]
  end
end

然而,似乎我一直在尝试的是,我的方法并没有很好地工作。

有人知道我能做什么?

,尽管@sergiotulentsev给出了适当的响应,但将来,如果您要通过哈希循环循环,那么下面是通过钥匙迭代并抓住您想要的价值的一种方法。

 hash = {
                :name => "player1",
               :label => "redTeam_1_1",
               :group => "adult",
                :teamId => 7,
  :eligibility_settings => {
                      "min_age" => 18,
                "player_gender" => "female",
          "union_players_only"  => true
   }
}
hash.map do |settings, value|
 p hash[:eligibility_settings]['min_age'] if settings == :eligibility_settings
end # output 18

最新更新