2012-10-11 11 views
8

क्या के बीच मतभेद हैं:सही वाक्य रचना एक Haml संदर्भ में रेल `content_for` सहायक उपयोग करने के लिए क्या है

- content_for :header do 
    %h1 Title 

और

= content_for :header do 
    %h1 Title 

सही तरीका क्या है?

+1

जो लोग सोच रहे हैं, उनके लिए अंतर '-' और '=' के बीच है। –

उत्तर

17

यह इस बात पर निर्भर करता है कि आप क्या करना चाहते हैं।

हैडर तुरंत प्रस्तुत करना करने के लिए, कार्य करें:

= content_for :header do 
    %h1 Title 

सामग्री को एकत्र करते हैं और बाद में उपयोग करने के लिए कार्य करें:

- content_for :header do 
    %h1 Title 

और आपके विचार (रों) में कहीं इसका इस्तेमाल करने के लिए:

= content_for :header 

रेल में < 3.2 आप = yield :header उपयोग करने के लिए की जरूरत है। यह अभी भी रेल 3.2 में समर्थित है लेकिन यह सहायक मॉड्यूल में काम नहीं करता है जबकि content_for करता है (धन्यवाद @ ड्रिशिश)।

+0

यह रेल 3.2 में बदल गया है सही? अब आप '= yield_for: header' के बजाय' = content_for: header' का उपयोग करना चाहते हैं? – drewish

+0

ऐसा लगता है कि आप अभी भी दोनों का उपयोग कर सकते हैं, लेकिन 'उपज' सहायक मॉड्यूल में काम नहीं करती है ([स्रोत] (http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for))। – gylaz

+0

आह, मैं content_for के लिए haml में "do" चूक गया। धन्यवाद! –

0

= उपज: हेडर, हालांकि बहिष्कृत नहीं किया गया है, को कम उपयोग में लाया गया है। हालांकि रेल 3.2 इसका समर्थन करता है, लेकिन समस्या सहायक मॉड्यूल में होती है। content_for, दूसरी तरफ अच्छी तरह से काम करता है और अक्सर उपयोग किया जाने वाला कमांड होता है।

संबंधित मुद्दे