Ruby'de anahtar kelime argümanları yok. Raylar, bir hashın etrafındaki parantezleri çıkarmanıza izin veren bir Ruby özelliğini kullanıyor.
Ama karma yöntemin son argüman ise, parantez dışında bırakabilir ve hala bir karma olarak kabul edilir: Örneğin, find
ile, ne gerçekten aradığınız ise
Person.find(:all, :conditions => "...", :offset => 10, :limit => 10)
kendi yöntemlerde kullanabilirsiniz
: o zaman
def explode(options={})
defaults = { :message => "Kabloooie!", :timer => 10, :count => 1 }
options = defaults.merge(options)
options[:count].times do
sleep options[:timer]
puts options[:message]
end
end
Ve diyoruz:
explode :message => "Meh.", :count => 3
Ya da tüm varsayılan değerler sonuçlanan bir argüman olmadan çağırır kullanılıyor: Sadece parametrelerden biri karma bir yöntem tanımlamak gerekir
explode
Bunlar anahtar kelime argümanları değil. Bunun yerine, bu tekniğin nasıl uygulanacağını öğrenmek için bu argümanları alan yöntemlerin kaynak koduna bakabilirsiniz. Fikirler için 'ActiveRecord :: Base.find' (http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002263) belgesine bir göz atın. – yfeldblum