Допустим, у меня есть пользовательский ввод, который может быть либо это:Элегантный способ в Ruby, чтобы найти первый из возможных ключей соответствия хэш
input = { user_id: 5, ... }
или это:
input = { app_id: 5, ... }
И я хочу, чтобы вернуться либо : user_id или: app_id в зависимости от того, какой из них предоставляется. Я могу это сделать:
(input.keys & [:user_id, :app_id]).first
Есть ли более элегантный, более рубиновый, идиоматический способ сделать это?
Является ли это лучше или хуже, чем выше ?:
input.slice(:user_id, :app_id).keys.first
(ответы не должны быть строго от Ruby, 2,2 STDLIB, Рельсы методы также приветствуем)
Ваш достаточно элегантный, вауельный вариант использования для набора пересечений. Или вы хотите ** значение ** из хэша, а не ключ? –
Нет, я хочу ключ, а не значение. Благодарю. – Ben
Я могу сделать 'val = input [: user_id] || input [: app_id] 'лично – rainkinz