तकनीकी रूप से, yield
इस संदर्भ में एक ब्लॉक भी बुला रहा है। हालांकि, ब्लॉक दृश्य है कि आपके नियंत्रक कार्रवाई को प्रस्तुत करने के लिए कहा गया था।
उदाहरण के लिए, मान लें कि आपके पास StaticContentController
है जिसमें index
है जो आपके होम पेज का प्रतिनिधित्व करता है। सही तरीके से कॉन्फ़िगर किए गए मार्गों के साथ, आप अपने होम पेज पर जाते हैं। रेल views/layouts
में लेआउट फ़ाइल लोड करेंगे जो उस नियंत्रक (application.html.haml
के लिए उपयुक्त है, जब तक कि आप इसे अपने नियंत्रक के लिए लेआउट के साथ ओवरराइड न करें)। जब यह yield
कमांड तक पहुंचता है, तो यह उस स्थान पर views/static_content/index.html.haml
पर दृश्य डालता है जहां yield
आपके लेआउट के अंदर है। फिर, यह आपकी शेष लेआउट फ़ाइल लोड करता है।
def twice
yield
yield
end
> twice { print 'hi ' }
=> hi hi
एक लेआउट के बारे में सोच का सबसे अच्छा तरीका एक विधि है कि एक ब्लॉक के साथ कहा जाता है: