मेरे पास एक नियंत्रक है जो html
और js
दोनों का जवाब देता है। html
दृश्य पूरे पृष्ठ (शीर्षलेख और पाद लेख सहित) प्रस्तुत करता है, जबकि js
केवल #main
को प्रतिस्थापित करता है। हेडर और पाद लेख के अलावा, दोनों प्रारूप समान सामग्री प्रस्तुत करते हैं। मैं तीन फाइलों के साथ इस प्रभाव को प्राप्त कर सकते हैं:रेल: एक दृश्य (आंशिक नहीं) एक दृश्य के भीतर से
_show.html.erb
<div>Content!</div>
show.html.erb
<%= render "show" %>
show.js.erb
$("#main").fadeIn("<%= escape_javascript(render 'show') %>");
यह काम करता है, लेकिन मुझे लगता है कि अगर मैं एक अलग _show
आंशिक जरूरत नहीं थी पसंद करेंगे। दुर्भाग्य से, यह काम नहीं करता है:
show.html.erb
<div>Content!</div>
show.js.erb
$("#main").fadeIn("<%= escape_javascript(render 'show') %>");
के रूप में रेल show
आंशिक, न कि वास्तविक दृश्य के लिए दिखेगा।
क्या आंशिक की बजाय दृश्य फ़ाइल देखने के लिए रेल प्राप्त करने का कोई तरीका है?
आप इस्तेमाल कर सकते हैं': च ile' विकल्प, उदा। ': फ़ाइल => 'शो''।रेंडर हेल्पर 'रेंडर' 'अवलोकन' के स्ट्रिंग तर्क को 'रेंडर: आंशिक =>' yourview'' में बदल देगा। हालांकि, जिस समस्या में आप भागने जा रहे हैं, वह यह है कि जेएस एक्शन में लुकअप संदर्भ जेएस संस्करण को "शो" को हल करने जा रहा है, जिसके परिणामस्वरूप असीमित लूप या कुछ ऐसा हो सकता है। – numbers1311407
शुक्र है, यह लूप नहीं है। कम से कम अब तक नहीं। अभी के लिए मुझे एक 'लापता टेम्पलेट' त्रुटि मिल रही है। ऐसा लगता है कि यह खुद को भी नहीं ढूंढ सकता है। – nullnullnull
किसी अन्य दृश्य के अंदर एक गैर-आंशिक दृश्य प्रस्तुत करना बिल्कुल रेलवे ™ नहीं है। आपका वर्तमान समाधान शायद बेहतर है। अगर आप नामकरण के बारे में अजीब महसूस करते हैं तो इसे '_body' का नाम दें। इस परिदृश्य में आप जो आम बात देखने जा रहे हैं वह 'रेंडर (@resource) 'है, जो आंशिक पथ में बदल जाती है उदा। 'संसाधन/_resource'। – numbers1311407