Rails选择辅助方法

时间:2011-07-27 22:44:25

标签: ruby-on-rails

我的设置:Rails 3.0.9,Ruby 1.9.2

我有一个全局常量定义

TYPES = { "visa" => "Visa", "master" => "MasterCard" }

我想反转select方法的值,我知道这听起来很傻但是我的代码的另一部分需要这个功能,所以我想弄清楚它是否可行。这是我到目前为止所做的但没有工作

<%= f.select :card_type, TYPES.each { |key, value| [value, key] } %>

1 个答案:

答案 0 :(得分:1)

使用invert内置的Hash方法:

TYPES = { "visa" => "Visa", "master" => "MasterCard" }

TYPES.invert
# => {"Visa"=>"visa", "MasterCard"=>"master"}

所以:

<%= f.select :card_type, TYPES.invert %>

注意:

  1. 为什么不使用符号代替字符串来代替{。{1}}代替:master
  2. 原始"master"的值将用作TYPES'ed invert的键,因此请确保您的值都是唯一的。