2011-09-16 5 views
5

एक रेल 3.1.0 प्रोजेक्ट में, मेरे पास पृष्ठभूमि अनुकूलक और link_color जैसे कुछ अनुकूलन योग्य गुण हैं। मैं तो जैसे कुछ सास चर सेट करने के लिए सक्षम होना चाहते हैं:मैं सैस में रेल वस्तुओं को कैसे एक्सेस कर सकता हूं?

$background_color: <%= @company.background_color %> 
$link_color: <%= @company.link_color 

... 

इसका कारण यह है @company नहीं के बराबर है काम नहीं करता है जब सास अपनी बात करता है। मुझे यकीन नहीं है कि इसे गतिशील तरीके से हल करने के बारे में कैसे जाना है (कंपनियां बनाई जा सकती हैं और रंग बदल सकते हैं और विचार तुरंत अपडेट हो सकते हैं)। कोई सुझाव?

+0

बस एक प्रति साइट/पेज। – complex

उत्तर

0

मुझे लगता है कि आप सिर्फ तुम क्या देखते है की तरह कुछ करने के लिए सक्षम हो सकता है, लेकिन आप '.css.scss.erb'

+0

आह, मुझे उल्लेख किया जाना चाहिए कि मैंने कोशिश की। यह application.css.sass.erb में है लेकिन कोई पासा नहीं है। – complex

+0

तो मुझे लगता है कि आपको नियंत्रक के माध्यम से अनुरोध करना होगा, इसलिए लिंक टैग बनाएं जो नियंत्रक को रूट करें जो सीएसएस अनुरोधों या कुछ का जवाब देते हैं – Matthew

1

मैं एक जोड़े दृष्टिकोण के बारे में सोच सकते करने के लिए फ़ाइलों के एक्सटेंशन को बदलने की जरूरत मेरे सिर के ऊपर से:

  1. नियंत्रक के माध्यम से अपनी स्टाइलशीट की सेवा करें।
  2. रंगों को कॉन्फ़िगर करने के लिए सीएसएस कक्षाओं का उपयोग करें और केवल उस सीएसएस को नियंत्रक, इनलाइन आंशिक, या एक सीएसएस @import के माध्यम से सेवा दें।

नियंत्रक के माध्यम से अपनी स्टाइलशीट की सेवा करना काफी सरल है इसलिए कहने के लिए बहुत कुछ नहीं है। यह थोड़ा बदसूरत और बोझिल हो सकता है।

दूसरा एक के लिए, आप एक जोड़ी अतिरिक्त सीएसएस वर्गों जोड़ेंगे:

.custom-bg { 
    background-color: some-default-bg; 
} 
.link-fg { 
    color: some-default-fg; 
} 
/*...*/ 

तो किसी भी तत्व कस्टम पृष्ठभूमि रंग का उपयोग करने के अपने सामान्य सीएसएस वर्गों और custom-bg की आवश्यकता होगी की जरूरत है कि; अन्य कॉन्फ़िगर करने योग्य मानों के लिए समान शेंगेन की आवश्यकता होगी। कस्टमाइज्ड सीएसएस की आपूर्ति के लिए, आप एक मानक ईआरबी आंशिक का उपयोग कर अपने एचटीएमएल में <style> तत्व को रेखांकित कर सकते हैं या आप नियंत्रक के माध्यम से सीएसएस की सेवा कर सकते हैं (या तो <style src="..."> या @import के माध्यम से)। तो आप अपने एचटीएमएल में पुराने स्कूल एकाधिक सीएसएस कक्षाओं के साथ सैसी भलाई चाहते हैं।

जावास्क्रिप्ट भी है। आप इस तरह चीजों के साथ सीधे तत्वों की जरूरत है कि उनके रंग समायोजित की पहचान करके समायोजित करने के लिए उन्हें किसी तरह से आवश्यकता होगी:

$('.need-custom-background').css('background-color', '...'); 
0

इस पर नजर रखने के लिए, मैं एक स्टाइलशीट नियंत्रक बनाने के लिए किया था, लेकिन यह नहीं बल्कि करने के लिए काल्पनिक था सास पार्सिंग और एसेट पाइपलाइन लोड पथ सभी सही ढंग से काम करते हैं। मैंने इसे डंप कर दिया और शैलियों को पुनर्गठित कर दिया ताकि मैं प्रत्येक कंपनी के लिए स्थैतिक स्टाइलशीट उत्पन्न कर सकूं जो पुन: उत्पन्न हो जाता है और कंपनी अपडेट पर एस 3 पर अपलोड हो जाता है।