Ich habe ein Problem bei der Suche durch einen Hash, wo meine Werte Methoden sind. Ich möchte nur die Methode ausführen, wo plan_type
den Schlüssel entspricht.Durchsucht einen Hash in Ruby mit Werten, die Methoden sind
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
Zeit, wenn ich in „bar“ als plan_type
passieren, wird jede Methode ausgeführt, wie kann ich nur laufen gerade die plan_is_bar
Methode?
Es gibt viele Möglichkeiten, um den Effekt, den Sie (rufen Sie eine Methode in Abhängigkeit von einem benannten Typ oder einem anderen Logik) scheinen zu wollen, zu erreichen. Wenn Sie die Methode sofort aufrufen, ist ein solcher Hash möglicherweise nicht der einfachste Weg. Es kann jedoch nützlich sein, wenn Sie den Anruf erst später vornehmen möchten. –