2011-04-03 16 views
6

तो मेरे पास है :partial प्रतिपादन के साथ एक समस्या ...प्रस्तुत: के साथ आंशिक: लेआउट दृश्य में काम नहीं करते

मेरे पास है:

index.html.erb की <%= render :partial => 'partial_test', :layout => 'partial_test' %> index.html.erb' layout with content of <% = उपज% सामग्री के साथ दृश्य > `सरल स्ट्रिंग _partial_test.html.erb की सामग्री के साथ लेआउट की सामग्री के साथ

_partial_test.html.erb दृश्य <div id="_partial"><%= yield %></div>

प्रतिपादन के बाद मुझे नियंत्रक (देखें + लेआउट) इंडेक्स एक्शन से उचित सामग्री मिलती है, लेकिन आंशिक प्रतिपादन से मुझे केवल सामग्री देखने से मिलता है, लेआउट गुम है।

मैं कुछ इस तरह मिलना चाहिए: <div id="index"> <div id="_partial"> simple string </div> </div>

लेकिन मैं हो रही है <div id="index"> simple string </div>

यह अजीब है क्योंकि जब मैं अंदर नियंत्रक सूचकांक कार्रवाई से लेआउट के साथ आंशिक प्रस्तुत करना मैं दृश्य + लेआउट के समुचित प्रतिपादन मिलता है (केवल आंशिक के लिए)।

सहायता की जरूरत :)

उत्तर

13
इसके बजाय

<%= render :partial => 'partial_test', :layout => 'partial_test' %>

का उपयोग कर मैं क्या उपयोग करने के लिए आवश्यक की

था

<%= render :partial => 'partial_test', :layout => 'layouts/partial_test' %>

1

जैसा कि मैंने रेल डॉक्स पढ़ें, आप नहीं चाहते:

<%= render :partial => 'partial_test', :layout => 'partial_test' %> 

आप चाहते हैं:

<%= render 'partial_test', :layout => 'partial_test' %> 

मुझे यकीन है कि कैसे/क्यों नहीं कर रहा हूँ आपके लेआउट और आंशिक का एक ही नाम है, लेकिन कृपया रेल गाइड को देखें: http://guides.rubyonrails.org/layouts_and_rendering.html, खंड 3.4.3।

+0

हाय @Steve, मैं इस गाइड पढ़ा था, अगर मैं 'का उपयोग नहीं करते: partial' आंशिक के लिए लेआउट लोड नहीं होगा। इस मामले में फ़ाइल नाम अप्रासंगिक नहीं हैं। प्रतिक्रिया के लिए Thx। – xyz

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