散列数组 - 获取数组元素

Vla*_*nov 1 ruby

我得到包含用户角色,控制器名称和此角色可以访问的控制器操作列表的哈希.

access = {
    'admin' => [ 'users'    => ['edit','delete'],
                 'messages' => ['show','update']
               ],
     'user' => [ 'index'    => ['index','sign-out'],
                 'messages' => ['show','index']
               ]
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能检查access['admin']['users']['edit']存在的是什么?

jtb*_*des 5

access['admin']['users'].include? 'edit'
Run Code Online (Sandbox Code Playgroud)

但是,这可能是一个问题:您正在使用... => ['users'=>['edit','delete'],...] 这将创建一个内部有哈希的数组.例:

{'a'=>'b'} #=> {"a"=>"b"}
['a'=>'b'] #=> [{"a"=>"b"}]
Run Code Online (Sandbox Code Playgroud)

所以考虑使用这个:

access = {
    'admin' => { 'users'    => ['edit','delete'],
                 'messages' => ['show','update']
               },
     'user' => { 'index'    => ['index','sign-out'],
                 'messages' => ['show','index']
               }
}
Run Code Online (Sandbox Code Playgroud)