检查ruby哈希中的约束

检查ruby哈希中的约束,ruby,Ruby,我已经创建了一个映射,并通过以下方式从数据库中获取键的值 def data myMaps.map do |Mymap| { key1: value1, key2: value2, kay3: value3 } end end 如果我必须检查值1是否为nil,那么正确的语法是什么? 我只想在值不是nil时分配键值对。首先,您应该查看#map的文档。从你的问题来看,你很不清楚你想做什么。您的方法将假定myMaps是一个数组,然后使用三个键和三个值将哈希映射到每个值上。我不是1

我已经创建了一个映射,并通过以下方式从数据库中获取键的值

def data
 myMaps.map do |Mymap|
 {
  key1: value1,
  key2: value2,
  kay3: value3
 }
end 
end 
如果我必须检查值1是否为nil,那么正确的语法是什么?
我只想在值不是nil时分配键值对。

首先,您应该查看#map的文档。从你的问题来看,你很不清楚你想做什么。您的方法将假定
myMaps
是一个数组,然后使用三个键和三个值将哈希映射到每个值上。我不是100%确定,但我认为你想要的更像:

myMaps = { key2: value2, key3: value3 }
myMaps[key1] = value1 unless value1.nil?

当值为nil时,将值分配给哈希键的方法如下

hash[:key] ||= "value"
我不知道如何正确回答你的问题,因为它很不清楚


首先,Ruby中没有地图数据类型。你们可能称之为映射的东西实际上是一个散列。但是,没有
map
方法用于
Hash
,因此我假设
myMaps
是一个
数组
,但没有证据表明该变量是在哪里定义的。

我正在创建一个哈希,其中键的值是从数据库中获取的。我只想在数据库中存在键值对时才在哈希中分配该键值对(不是nil),否则跳过该键值对并继续下一个键值对。是的,我尝试过这样做,但遇到此错误“意外的kUNLESS_MOD”