Kiedy lista metodę Ruby wywołania za argumentem kończy się w jednej lub więcej par klucz-wartość, jak foo: 'bar'
lub 'foo' => 1
, Ruby zbiera je wszystkie w jeden hash i przekazuje, że hash jako ostatni parametr. Widać, że się w irb
:
irb(main):002:0> puts foo: 'bar', baz: 'quux'
{:foo=>"bar", :baz=>"quux"}
=> nil
Zatem można dodać końcowy, opcjonalny parametr do metody piszesz do otrzymania tego skrótu. Zazwyczaj będziesz chciał ustawić domyślny pusty hasz. można wywołać parametr, który ma niczego, ale options
to nazwa zwyczajowa:
def my_method(a, b, c, options = {})
...
end
Jeden przydatna sztuczka jeśli używasz Rails: To jest często przydatna w leczeniu zwykłe ciągi i symboli za równoważne. Szyny dodaje metodę symbolize_keys!
do Hash
konwertować wszystkie klucze ciąg symboli:
def my_method(a, b, c, options = {})
options.symbolize_keys!
...
end
U rock man! Dzięki :) – facundofarias
Dzięki, dobrze wyjaśnione: D +1 –