In Ruby 1.9 (oder mit Active geladen, zum Beispiel in Rails) nicht finden, Sie Object#tap
, zum Beispiel verwenden können:
foo = Hash.new.tap do |bar|
bar[:baz] = 'qux'
end
Sie können einen Block zu Hash.new
, übergeben, aber das dient die Standardwerte zu definieren:
foo = Hash.new { |hsh, key| hsh[key] = 'baz qux' }
foo[:bar] #=> 'baz qux'
Für das, was es wert ist, gehe ich davon aus, dass Sie ein größerer Zweck im Sinn mit diesem Block-Zeug. Die Syntax { :foo => 'bar', :baz => 'qux' }
kann alles sein, was Sie wirklich brauchen.
Aus Neugier, versuchen Sie diesen Ansatz, weil Sie dies beim Erstellen neuer ActiveRecord-Objekte tun? –