संभव डुप्लिकेट:
What does map(&:name) mean in Ruby?समझौता [ClassOne, ClassTwo] चाहते प्रत्येक (और: my_method)
मैं एक railscast देख रहे हैं और इस कोड को देखा गया था।
[Category, Product].(&:delete_all)
डेटाबेस को समाशोधन के संबंध में।
मैं आईआरसी में लाइन के बारे में पूछा और कहा गया था
(&:delete_all)
मैं निम्नलिखित
class ClassOne
def class_method
puts 1
end
end
class ClassTwo
def class_method
puts 2
end
end
[ClassOne, ClassTwo].each(&:class_method)
मैं कह एक त्रुटि प्राप्त के साथ इस परीक्षण किया के लिए
{|model| model.delete_all}
एक शॉर्टकट था
Wrong Argument type Symbol (expected Proc)
मैं भी
one = ClassOne.new
two = ClassTwo.new
[one, two].each(&:class_method)
की कोशिश की लेकिन वह अभी भी विफल रहा है।
अगर मैं संशोधित यह
[one, two].each{|model| model.class_method}
सब कुछ काम किया पढ़ने के लिए अपेक्षा के अनुरूप।
तो, &:delete_all
वास्तव में क्या करता है? दस्तावेज़ कहते हैं delete_all
एक विधि है, इसलिए मैं यहां पर क्या हो रहा है इस बारे में उलझन में हूं।
यह सही है; यदि आपने आईआरबी में अपना परीक्षण चलाया है, तो यह काम नहीं करेगा (मान लें कि आप रूबी 1.8.एक्स चला रहे हैं)। स्क्रिप्ट/कंसोल में इसे फिर से आज़माएं। –