2012-01-11 22 views
5

तो मेरे पास लॉग इन करने और सत्र नियंत्रक में मेरे दृश्य के अंदर content_for है, मेरे पास render :new है जब उपयोगकर्ता मान्य प्रमाण-पत्र दर्ज नहीं करता है। हालांकि, जब यह render :new करता है, तो मुझे बिना किसी सीएसएस या जेएस के काले और सफेद पृष्ठ मिलते हैं। यह कैसे मेरे content_for देखो की तरहरेल सामग्री सामग्री निष्पादित नहीं होती है?

<% content_for :head do %> 
    <%= stylesheet_link_tag "user_sessions/new" %> 
    <%= javascript_include_tag 'user_sessions/new.onready' %> 
<% end %> 

एक काम के आसपास लगता है कि इसके बाद के संस्करण कोड का निष्पादित जब मैं render कर बनाने के लिए वहाँ है है?

उत्तर

9

मेरा अनुमान है कि आप कहीं भी content_for शामिल नहीं हैं। app/views/layouts/application.html.erb (या जो भी लेआउट तो आप इस पेज के लिए उपयोग कर रहे हैं) सुनिश्चित करें कि आप की तरह कुछ मिल गया है बनाने में निम्नलिखित:

<head> 
    <!-- your regular head content goes here --> 
    <%= content_for :head %> 
</head> 

जब आप content_for करने के लिए एक ब्लॉक गुजरती हैं, ब्लॉक की सामग्री प्रयोग की जाने वाली जमा हो जाती है कहीं। बिना किसी ब्लॉक के content_for पर कॉल उस संग्रहीत सामग्री को सम्मिलित करेगा।

अधिक जानकारी के लिए the docs for content_for देखें।

+0

रोनाल्डऑनरल जवाब स्वीकार करना चाहिए एड जवाब यहाँ। – frandroid

+0

यह उत्तर रेल 3 के लिए सही है, जो इस सवाल से पूछा गया था कि नवीनतम संस्करण था। –

3
<head><%= content_for :head %></head> 

मेरे लिए काम नहीं किया था, लेकिन

<head><%= yield :head %></head> 

काम किया, मैं लगता है कि इस

करने के लिए सही बस याद है: yield सामग्री कहता है, और :head के लिए पैरामीटर है content_for जो आपने अपने प्रस्तुत किए गए दृश्य में डाल दिया है, ताकि आप एप्लिकेशन के कहीं भी कोड के टुकड़े डाल सकें, आप

+0

यह वास्तव में काम करता है जैसा कि इसका इरादा है ... आश्चर्यजनक रूप से मुझे रेल के पुराने संस्करणों में ऐसा करने की याद नहीं है। यह बदल सकता है। भले ही, इसके लिए धन्यवाद! – rcd

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