ruby - Hash with arrays - 获取数组元素

标签 ruby

我得到包含用户角色、 Controller 名称和该角色可以访问的 Controller 操作列表的哈希值。

access = {
    'admin' => [ 'users'    => ['edit','delete'],
                 'messages' => ['show','update']
               ],
     'user' => [ 'index'    => ['index','sign-out'],
                 'messages' => ['show','index']
               ]
}

我如何检查存在哪些access['admin']['users']['edit']

最佳答案

access['admin']['users'].include? 'edit'

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

{'a'=>'b'} #=> {"a"=>"b"}
['a'=>'b'] #=> [{"a"=>"b"}]

所以考虑使用这个:

access = {
    'admin' => { 'users'    => ['edit','delete'],
                 'messages' => ['show','update']
               },
     'user' => { 'index'    => ['index','sign-out'],
                 'messages' => ['show','index']
               }
}

关于ruby - Hash with arrays - 获取数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486051/

相关文章:

ruby - 如果代码块评估为 false,则跳过 enumerable#map 上的值

ruby - Ruby中BasicObject单例类的单例类

Ruby 正则表达式得到由句点分隔的单词组合

ruby - 为什么我不能从终端使用 ri

ruby-on-rails - 使用 rake 数据库 :migrate with sinatra and activerecord (not rails)

ruby-on-rails - 使用 pik 接收 : "ERROR: Failed to build gem native extension" when trying to install rails gem on ruby 1. 9.2

ruby - 如何在 ruby​​ 中删除 CSV 中的标题和第二列?

ruby - 使用 Ruby 和 Mechanize 计算新的奥运奖牌数

RubyMine:终止超时工作线程

javascript - 使用 EasyAutocomplete 的多输入字段 - Rails