Ruby on rails 哈希混合值类型比较

Ruby on rails 哈希混合值类型比较,ruby-on-rails,ruby,hash,Ruby On Rails,Ruby,Hash,我试图将一个变量与散列中的一个值进行比较,但是可以使用Numeric和String参数来查询散列 ED_CONTRIBUTIONS = { 1 => { db_code: 1, name: 'Provision of housing and transport', abbreviation: 'Provisions', group: 'Social development contributions' } } 我使用这样的方法进行比较: def f

我试图将一个变量与散列中的一个值进行比较,但是可以使用
Numeric
String
参数来查询散列

ED_CONTRIBUTIONS = {
  1 => {
    db_code: 1,
    name: 'Provision of housing and transport',
    abbreviation: 'Provisions',
    group: 'Social development contributions'
  }
}
我使用这样的方法进行比较:

def find_item(field, value)
  value.downcase if value.is_a? String
  applicable_items.find { |k,v| v[field] == value}.andand.last || {}
end

但有时
v[field]
db\u代码,因此是一个数字。如果
v[field]
是一个字符串,那么如何使其向下装箱?或者更确切地说,在这种情况下如何检查哈希值的状态。

您可以将其解析为
字符串:

value.to_.s.downcase


然后您不需要调查
值是否是
字符串
您可以检查它是否是这样的字符串
v[field]?字符串
,如果是,则将其降格。
或者你可以直接
v[field].to_s.downcase
it而不检查变量类型。

nice我不知道为什么我不考虑只比较转换后的字符串。男人,那是一个金发的时刻是啊,我现在要出去打我自己,这是一个如此简单的解决办法