में केवल एक निश्चित पृष्ठ के लिए अलग-अलग लेआउट मैं अपने रेल ऐप में केवल एक निश्चित कार्रवाई के लिए एक अलग लेआउट रखना चाहता हूं। मैं उसको कैसे करू?रेल
रेल
उत्तर
layout :resolve_layout
.
.
.
private
def resolve_layout
case action_name
when "new"
"alternate"
else
"application"
end
end
# controller that calls the page
def action
render :layout => 'other'
end
तो मेरे मामले में, मेरा "डीफ़ एक्शन" "डीई होमपेज" एकेए इंडेक्स है। मैंने एक layout.css.scss फ़ाइल बनाई और इसे अपने स्टाइलशीट फ़ोल्डर में रखा और 'रेंडर लाइन' में 'अन्य' 'लेआउट' के साथ जोड़ा और मेरा एप्लिकेशन क्रैश हो गया। मैं उलझन में हूं कि मैं क्या गलत कर रहा हूं। मेरी नई लेआउट फ़ाइल मेरी मूल लेआउट फ़ाइल के समान है। – Jubl
कोड की जांच किए बिना कहना मुश्किल है, एक नया प्रश्न खोलें और मैं – ecoologic
class MyController < ApplicationController
layout "special", :only => :action
def action
#action code
end
end
हम्म देख सकता हूं। दरअसल, यह उस नियंत्रक के लिए मेरे सभी अन्य कार्यों को कोई लेआउट नहीं बनाता है। उनको वापस लाने का कोई तरीका? –
मैंने कोशिश नहीं की है, लेकिन डिफ़ॉल्ट रूप से शीर्ष पर एक और पंक्ति डालने के बारे में क्या? कुछ 'लेआउट' सामान्य '#: को छोड़कर =>: कार्रवाई' – ecoologic
@ecologic, जो काम नहीं करेगा (रेलवे 3.0.एक्स में भी)। आप प्रति नियंत्रक केवल वैश्विक एक लेआउट घोषणा कर सकते हैं – SooDesuNe
http://guides.rubyonrails.org/layouts_and_rendering.html की – ecoologic
संभावित डुप्लिकेट [कैसे एक राय यह है कि एप्लिकेशन के बाकी के रूप में एक ही लेआउट का उपयोग नहीं करता जोड़ने रेल 3,?] (http://stackoverflow.com/questions/5090084/rails-3-how-add-a-view-that-does-not-use-same-layout-as-rest-of-app) – mlt