我正在尝试创建一个二维哈希,如下所示:
permissions['enrollment'] = ['read' => true, 'create' => true, 'update' => true]
permissions['invoices'] = ['read' => true, 'create' => false, 'update' => false]
这就是我做的......
permissions = Hash.new
permissions['enrollment'] = ['read' => true, 'create' => true, 'update' => true]
permissions['invoices'] = ['read' => true, 'create' => false, 'update' => false]
当我在irb中“放置”权限时,我得到了这个......
{
"enrollment"=>[{"read"=>true, "create"=>false, "edit"=>false}],
"invoices"=>[{"read"=>true, "create"=>false, "update"=>false}]
}
从上面的输出中可以看出,似乎在另一个哈希中有一个哈希用于权限['enrollment'] [{}]
!!!
我想访问注册的读取权限,如下所示:permissions['enrollment']['read']
但根据puts permission
,它将无效,我收到此错误TypeError: can't convert String into Integer
要让我访问注册的读取权限,我必须这样做:permissions['enrollment'][0]['read']
。
如何才能使注册读取权限与此相同...... permissions['enrollment']['read']
?
答案 0 :(得分:4)
您的语法已关闭。哈希由花括号分隔。方括号用于数组。如果你来自PHP世界,你可能会混淆两者。试试这个:
permissions = Hash.new
permissions['enrollment'] = {'read' => true, 'create' => true, 'update' => true}
permissions['invoices'] = {'read' => true, 'create' => false, 'update' => false}