Ruby如何访问"密钥"一个二维数组?

时间:2016-11-26 12:25:25

标签: arrays ruby

我有一个像我更新用户个人资料时在f.select中使用的数组

  SEX = [["Male", 'M'],
        ["Female", 'F']]

我使用了一个哈希,但是我无法使用精选内容使其工作。所以我有一个带有值的选择下拉菜单"男性"和"女性"并且它赋值为" M"或" F"用户变量:性别。现在,在显示个人资料时,我需要输出性别作为"键"在这里(男性或女性,不是M / F)。我怎样才能访问这些" key"除了为更大的数组方法制作巨大的get_sex和其他getter之外,还有什么值得干掉?我能在这做什么?

3 个答案:

答案 0 :(得分:0)

考虑将哈希与options_for_select助手一起使用:

options_for_select({ "Male" => "M", "Female" => "F" }, "M")

可以找到其他文档here

答案 1 :(得分:0)

为了清楚起见,请阅读文档here。但就像panmari所指出的那样,这是最佳选择。

为了使他的建议更加灵活,我建议你为男性和女性创建常量,并将它们作为哈希传递给选择助手。

答案 2 :(得分:0)

您需要使用rassoc方法https://ruby-doc.org/core-2.2.0/Array.html#method-i-rassoc

sex = [["Male", "M"], ["Female", "F"]]
sex.rassoc("M")
 => ["Male", "M"] 
sex.rassoc("M").first
 => "Male"