मैंने रेलवे 2 में कई सहायकों के लिए इस पैटर्न का उपयोग किया है, लेकिन यह रेलों में समान काम नहीं कर रहा है। मेरा लक्ष्य है कि एक सहायक विधि कुछ एचटीएमएल टैग उत्पन्न करती है जिसमें सामग्री घोंसला होती है।रेलवे में एक ब्लॉक में एक सहायक विधि कैसे उत्पन्न होती है 3?
<div class="box">
my content
</div>
रेल 2 में मैं इस तरह यह करना:
<% box_wrapper do %>
<%= yield -%>
<% end %>
:
मेरी लेआउट फाइल के अंदर मैं सहायक विधि कॉल यहाँ मैं क्या पाने के लिए कोशिश कर रहा हूँ की एक बुनियादी उदाहरण है
सहायक विधि इस तरह परिभाषित किया गया है:
def box_wrapper
concat <<-EOF.html_safe
<div class="box">
EOF
yield if block_given?
concat <<-EOF.html_safe
</div>
EOF
end
लेकिन रेल 3 में जब दृश्य प्रदान की गई हो जाता है कि यह मेरे पूरे पृष्ठ एक आउटपुट डी box_wrapper
के अंदर यह दूसरी पृष्ठ सामग्री को दूसरी बार प्रस्तुत करता है।
मुझे लगता है कि मैं मददगार और उपज का उपयोग करने के तरीके के साथ कुछ स्पष्ट याद कर रहा हूं। कोई विचार?
सिर्फ आर बेट्स की सिफारिश अग्रेषण: "अद्यतन: मैं उपयोग करने की अनुशंसा" "।।। यह ERB विचारों के बाहर काम करने के अतिरिक्त लाभ है कोड नीचे अद्यतन किया गया है" with_output_buffer "के बजाय विधि" पर कब्जा – apneadiving
@apneadiving - इसके लिए धन्यवाद, निश्चित रूप से एक सुधार। –
धन्यवाद! मेरा वास्तविक उपयोग एक सादा content_tag से अधिक जटिल है, लेकिन यह मुझे शुरू करने के लिए पर्याप्त था। – nimblegorilla