2011-09-25 24 views
11

मैं एक लेआउट के साथ एक आंशिक है,:नामित उपज के साथ आंशिक आंशिक लेआउट रेल - उपज ब्लॉक का उपयोग क्यों नहीं किया जाता है?

<%= render :partial => 'home/mobile/home', :layout => 'home/mobile/page', :locals => {:page => 'abc2'}%> 

लेआउट (page.html.erb) जैसे विभिन्न ब्लॉकों के लिए पैदावार, है:

<div data-role="header"> 
    <%= yield :header %> 
</div> 

हालांकि, इस उपज ब्लॉक कभी नहीं है उपयोग किया जाता है, जबकि मुख्य-स्तरीय लेआउट फ़ाइल उपज करता है क्योंकि कोई अपेक्षा करता है।

क्या आंशिक के लेआउट के साथ नामित content_for/उपज ब्लॉक का उपयोग करना असंभव है? क्या कामकाज हैं?

मैं विरासत की अपेक्षा करता हूं - content_for: शीर्षलेख को पहले उपज की तलाश करनी चाहिए: आंशिक के लेआउट में शीर्षलेख, और उसमें विफल होना, मुख्य लेआउट फ़ाइल। पर ये स्थिति नहीं है। आंशिक लेआउट की उपज: हेडर को केवल अनदेखा किया जाता है।

उत्तर

0

कामकाज blocks (जो सही ढंग से उपज करने में सक्षम होना चाहिए) का उपयोग करके अपने लेआउट को एक सहायक विधि में लपेटना होगा।

आप मूल समस्या के बारे में एक बग दर्ज करना चाह सकते हैं।

+0

लगता है कि आप चाहते हैं इसे रेल 3 के साथ काम करने के लिए इसे थोड़ा सा हैक करना है – numbers1311407

2

आपकी तरह की स्थिति में, मैंने yield को किसी ब्लॉक के बिना content_for पर कॉल के साथ बदल दिया। तो आपके उदाहरण में यह बस होगा:

<div data-role="header"> 
    <%= content_for :header %> 
</div> 

यह मेरे लिए काम करता था। आंशिक रूप से yield एस आपको उलझन में नहीं आता है क्योंकि आप सुझाव देते हैं कि यह एक सुविधा या बग हो सकता है - लेकिन यह अभी भी लगता है कि यह लाइन 4.1.8, लाइन के नीचे 3 साल में कैसे काम करता है :)

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

  • कोई संबंधित समस्या नहीं^_^