我有一个字符串哈希表
navigable_objects = { 'Dashboard' => root_path,
'Timesheets' => timesheets_path,
'Clients' => clients_path,
'Projects' => projects_path,
}
我希望将它们转换为另一个哈希表,其中键仍然是原来的键,但值是字符串“active”或空字符串,具体取决于当前控制器名称是否包含该键。
例如,假设当前控制器名称为“ClientsController”。我应该得到的结果是:
{ 'Dashboard' => '',
'Timesheets' => '',
'Clients' => 'active',
'Projects' => ''
}
这是我目前的做法:
以下是我的操作步骤:
active = {}
navigable_objects.each do |name, path|
active[name] = (controller.controller_name.include?(name)) ? 'active' : '')
end
我感觉虽然这样做可以实现,但在Ruby中有更好的方式,可能使用inject
或each_with_object
?