我有一个模型,该模型的用户可选择选项设置在模型的数组中。
def Pie < ActiveRecored::Base
def self.sel_options
[ [ "Apple Blueberry", "AB" ],
[ "Cranberry Date", "CD" ] ]
end
end
虽然短字符串是从其他地方检索并存储在数据库中,但我想在显示对象时显示较长的字符串。例如在 View 中使用:
Pie.display_customeor_choice[@pie_flavor]
我不想对反向哈希进行硬编码,但是如果我创建一个 display_options 方法将数组转换为具有反向映射的哈希,它会在每次调用 display_options 时运行转换吗?对于经过大量转换的大型数组,这可能是资源密集型的,有没有一种方法可以在应用程序启动时创建一次反向哈希,而不会再创建一次? (使用 rails 3 和 ruby 1.9.2)
最佳答案
您正在寻找Array#rassoc
Pie.display_customeor_choice.rassoc("@pie_flavor")
关于ruby-on-rails - ruby rails : reverse lookup of array list of values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7082142/