红宝石 如何访问二维数组的"key"?



我在更新用户配置文件

时在f.Select中使用的数组
  SEX = [["Male", 'M'],
        ["Female", 'F']]

我会使用哈希,但我根本无法使用精选的东西来工作。因此,我有一个选择"男性"one_answers"女性"的值的下拉列表,并且为用户变量:性别分配了" m"或" f"的值。现在,在显示轮廓时,我需要在此处输出性别为"键"(男性或女性,而不是m/f)。除了制作较大的get_sex和其他较大阵列方法外,我还能访问这些"钥匙"值,这些方法根本不会干?我可以在这里做什么?

您需要使用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" 

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

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

可以在此处找到其他文档。

为了清楚起见,请在此处阅读文档。但是,就像Panmari所指出的那样,这就是要走的路。

为了使他的建议更加灵活,我建议您为男性和女性创建常数,并将其作为哈斯助手传递给选择的助手。

最新更新