Wenn eine Argumentliste Ruby Methodenaufruf in einen oder mehrere Schlüssel-Wert-Paare endet, wie foo: 'bar'
oder 'foo' => 1
sammelt Rubin sie alle in einem einzigen Hash und leitet, dass Hash als letzter Parameter. Sie können, dass sich in irb
sehen:
irb(main):002:0> puts foo: 'bar', baz: 'quux'
{:foo=>"bar", :baz=>"quux"}
=> nil
So können Sie einen letzten, optionalen Parameter ein Verfahren fügen Sie diesen Hash zu erhalten sind zu schreiben. Normalerweise möchten Sie es auf einen leeren Hash setzen. Sie können den Parameter etwas rufen Sie wollen, aber options
ist ein gebräuchlicher Name:
def my_method(a, b, c, options = {})
...
end
Ein nützlicher Trick, wenn Sie verwenden Rails: Es ist oft praktisch, blanke Saiten und Symbole als gleichwertig zu behandeln. Rails fügt eine symbolize_keys!
Methode Hash
alle String-Schlüssel zu Symbolen konvertieren:
def my_method(a, b, c, options = {})
options.symbolize_keys!
...
end
U Rock Mann! Danke :) – facundofarias
Danke, gut erklärt: D +1 –