रूबी में वास्तव में कीवर्ड तर्क नहीं हैं। रेल रूबी की एक विशेषता का शोषण कर रही है जो आपको एक हैश के चारों ओर ब्रेसिज़ को छोड़ने देती है। उदाहरण के लिए, find
साथ, क्या हम वास्तव में कॉल कर रहे है:
लेकिन अगर हैश विधि के अंतिम तर्क है, तो आप ब्रेसिज़ बाहर छोड़ सकते हैं और यह अभी भी एक हैश रूप में माना जाएगा:
Person.find(:all, :conditions => "...", :offset => 10, :limit => 10)
आप अपनी खुद की विधियों में इस का उपयोग कर सकते हैं:
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
और फिर यह कहते हैं:
explode :message => "Meh.", :count => 3
या एक तर्क के बिना इसे कहते हैं, सभी मूलभूत मूल्यों में जिसके परिणामस्वरूप इस्तेमाल किया जा रहा:
explode
स्रोत
2010-03-17 14:44:07
ये हैं कीवर्ड तर्क नहीं। इसके बजाए, आप इस तकनीक को कार्यान्वित करने के तरीके को जानने के लिए इन तर्कों के स्रोत कोड को देख सकते हैं। विचारों के लिए 'ActiveRecord :: Base.find' (http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002263) के लिए प्रलेखन पर एक नज़र डालें। – yfeldblum