У меня проблема с поиском через хэш, где мои значения являются методами. Я просто не могу запустить метод, где plan_type
соответствует ключу.Поиск через хэш в рубине со значениями, которые являются методами
def method(plan_type, plan, user)
{
foo: plan_is_foo(plan, user),
bar: plan_is_bar(plan, user),
waa: plan_is_waa(plan, user),
har: plan_is_har(user)
}[plan_type]
end
В настоящее время, если я перехожу в «баре», как plan_type
, каждый метод будет работать, как я могу работать только только метод plan_is_bar
?
Есть много способов для достижения эффекта вы хотите, кажется (вызов метода в зависимости от имени типа или другой логики). Если вы собираетесь немедленно вызвать метод, такой хеш может быть не самым простым способом. Тем не менее, это может быть полезно, если вы хотите отложить вызов до самого последнего. –