2009-08-26 8 views
5

अरे, मैं आम तौर पर रेल और रूबी के लिए नया हूं। मैं सोच रहा था कि क्या एम्बेडेड रूबी सीएसएस फ़ाइल (css.erb) का उपयोग करना संभव है, जो दृश्यों के लिए html.erb फ़ाइलों का उपयोग करने के समान है।रेल में styleheet.css.erb का उपयोग करना संभव है?

उदाहरण के लिए, मैं

<%= stylesheet_link_tag "main" %> 

उपयोग कर रहा हूँ सार्वजनिक/स्टाइलशीट में मेरी main.css फ़ाइल से लिंक करने के लिए, लेकिन main.css.erb जब मैं main.css से फाइल एक्सटेंशन बदलने के लिए, यह अब सीएसएस प्रस्तुत नहीं करता है ..

क्या यह भी संभव है, या क्या कोई बेहतर तरीका है?

उत्तर

3

मुझे ऐसा नहीं लगता है। क्या आपका इरादा - चर का उपयोग करने के लिए और उन्हें रनटाइम पर मूल्यांकन किया गया है, या "संकलन" समय (अर्थात् समय तैनाती की तरह?)। इसके अलावा, ईआरबी बाध्यकारी क्या होगा? क्या यह नियंत्रक से जुड़ जाएगा, जैसे विचार और सहायक हैं, ताकि ईआरबी इंस्टेंस में नियंत्रक में सेट आवृत्ति चर तक पहुंच होगी? मैं सिर्फ इस सवाल को सैद्धांतिक अभ्यास के रूप में मानता हूं।

यदि आप अपने सीएसएस में चर का उपयोग करना चाहते हैं तो आप हैमल के एसएएसएस का उपयोग कर सकते हैं। आपको नियंत्रक के दायरे तक पहुंच नहीं मिलती है लेकिन आपको बुनियादी चर और लूपिंग मिलती है। इसके अलावा मिश्रित की तरह अन्य शांत सामान।

4

तुम भी एक "स्टाइलशीट" नियंत्रक उत्पन्न कर सकते हैं

./script/generate controller stylesheets main admin maintenance 

आप कुछ इस तरह मिलती है:

 exists app/controllers/ 
     exists app/helpers/ 
     create app/views/stylesheets 
     exists test/functional/ 
     exists test/unit/helpers/ 
     create app/controllers/stylesheets_controller.rb 
     create test/functional/stylesheets_controller_test.rb 
     create app/helpers/stylesheets_helper.rb 
     create test/unit/helpers/stylesheets_helper_test.rb 
     create app/views/stylesheets/main.html.erb 
     create app/views/stylesheets/admin.html.erb 
     create app/views/stylesheets/maintenance.html.erb 

और तुम बाद में एप्लिकेशन/विचारों/स्टाइलशीट/फ़ाइलों के रूप में गतिशील सीएसएस गाया उपयोग कर सकते हैं फ़ाइलें।

एक ही विधि जावास्क्रिप्ट फ़ाइलें (javascripts नियंत्रक)

+1

क्या नियंत्रक के माध्यम से स्टाइलशीट को सर्वर करने और अभी भी रेलवे स्टाइलशीट कैशिंग का लाभ उठाने का कोई तरीका है? – Pablo

22

समय इस सवाल का जवाब था कि वहां वास्तव ठीक से रेल में .css.erb फ़ाइलों का उपयोग करने के लिए कोई रास्ता नहीं था तक के लिए काम करता है।

लेकिन नई रेल 3.1 संपत्ति पाइपलाइन आपको अपनी सीएसएस फ़ाइल के अंदर संपत्ति सहायकों का उपयोग करने में सक्षम बनाती है। सीएसएस पारसर्स एक नियंत्रक/कार्रवाई गुंजाइश आबद्ध नहीं है, लेकिन गहरे लाल रंग का पार्सर छवि पथ का संदर्भ

.class { background-image: url(<%= asset_path 'image.png' %>) } 

या एक छवि अपने सीएसएस

#logo { background: url(<%= asset_data_uri 'logo.png' %>) } 

स्रोत में सीधे एम्बेड की तरह अब कुछ मुद्दों को हल करने में सक्षम है : http://guides.rubyonrails.org/asset_pipeline.html