У меня есть хеш строк
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
Я чувствую, что, хотя это работает, есть лучший способ сделать это вРубин, возможно используя inject
или each_with_objects
?