के दौरान लेआउट को रोकता है मैंने इस खोज के मैकेनिक के लिए समाधान ढूंढने में सक्षम नहीं पाया है। मैं आम तौर पर रेल में सभी पृष्ठों को लोड करना चाहता हूं, लेकिन जब भी मैं AJAX अनुरोध करता हूं तो मैं लेआउट के बिना पेज को वापस करना चाहता हूं। तो जब भी मैं एक AJAX बना देता हूं तो मैं ?page=true
या उन पंक्तियों के साथ कुछ जोड़ सकता हूं और रेलवे लेआउट के बिना पृष्ठ को वापस कर सकता है।रेल AJAX अनुरोध
क्या यह संभव है? क्या ऐसा करने का कोई बेहतर तरीका है कि मुझे याद आ रही है?
किसी भी मदद के लिए धन्यवाद!
अंतिम समाधान कार्य कोड:
नियंत्रक में आप सभी की respond_to
ब्लॉक में format.html
एक छोटे से तर्क संलग्न करने की जरूरत है।
def show
# code beforehand
respond_to do |format|
format.html { render :layout => !request.xhr? }
# other formats
end
end
के लिए
show
विधि में और बस हो गया! AJAX अनुरोधों के दौरान लेआउट रोकें!
नोट: उनके जवाब पर उदासीनता की टिप्पणी के लिए धन्यवाद यह आगे सरलीकृत किया गया था। मैं मूल रूप से format.html { render :layout => nil if request.xhr? }
था यह समाधान बस काम करता है, लेकिन smathy के संशोधन इसे और भी आसान रखता है।
क्या प्रत्येक AJAX अनुरोध के लिए एप्लिकेशन नियंत्रक में ऐसा करना संभव है? –
संभावित डुप्लिकेट [xhrs के जवाब में कभी भी लेआउट प्रस्तुत न करें] (http://stackoverflow.com/questions/2444866/never-render-a-layout-in-response-to-xhrs) – fivedigit