2013-12-16 96 views
0
限制

我创建了一个地图,并从数据库中以下列方式检查在Ruby哈希

def data 
myMaps.map do |Mymap| 
{ 
    key1: value1, 
    key2: value2, 
    kay3: value3 
} 
end 
end 

如果让我来检查值1是无我取的键的值,什么是正确的语法? 只有当值不为零时,我才想分配键值对。

回答

1

首先,您应该查看#map here的文档。从你的问题来看,你很难清楚你想要做什么。你的方法会假定myMaps是一个数组,然后用三个键和三个值将一个散列映射到每个值上。我不是100%肯定,但我想你想要的是更多的东西一样:

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

是的我试过这样做,但我卡住了这个错误'意想不到的kUNLESS_MOD' – ruby

0

一个值分配给当值为零的哈希键的方式如下

hash[:key] ||= "value" 

我不知道如何正确回答你的问题,因为它很不清楚。

首先Ruby中没有Map数据类型。你可能称之为Map的实际上是一个哈希。然而,对于Hash,没有map方法,只是对于Array,所以我假定myMapsArray,但是没有证据表明这种变量在哪里定义。

+0

我正在创建一个散列,其中的密钥值是从数据库中提取的。我只想在数据库中存在该值(而不是nil)时在哈希中分配键值对,否则跳过该键值对并继续下一个值。 – ruby