如何从密钥对数组中提取值?

时间:2014-03-16 08:42:08

标签: ruby-on-rails ruby

我有一个带有键的数组,我用它来创建下拉列表的选项

FEEDBACK_NOTIFICATION = [['Only in reports', 'only_in_reports'],['Immediately', 'immediately']]

<%= f.select(:feedback_schedule, options_for_select(FEEDBACK_NOTIFICATION)) %>

第一个值(&#39;仅在报告&#39;,&#39;立即&#39;)显示在下拉菜单中,但最后一个值存储在数据库中(&#39; only_in_reports&#39 ;或者立即&#39;)。

当我想在视图中显示值时,我正在做这样的事情:

REPORT_SCHEDULE.select {|v,k| k==@company.report_schedule}.first.first

是否有更简单的方法从密钥对数组中检索值?

2 个答案:

答案 0 :(得分:2)

稍微好一些:

REPORT_SCHEDULE.find { |v, k| k == @company.report_schedule }.first

就个人而言,我会按照I18n惯例将“翻译”存储在yaml文件中,如我在问题Translating activerecord collection for a dropdown的答案中所示

这样,您的“表示”很好地与代码的其余部分分开

答案 1 :(得分:1)

应该这样做。

Hash[REPORT_SCHEDULE][@company.report_schedule]