我有一个带有键的数组,我用它来创建下拉列表的选项
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
是否有更简单的方法从密钥对数组中检索值?
答案 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]