रेल 3.1 में, आप अपने स्टाइलशीट ERB द्वारा पूर्व-संसाधित कर दिया है सकते हैं।
अब मान लें कि आपके पास कुछ गतिशील स्टाइल है जिसे dynamic.css.scss.erb
कहा जाता है (.erb
अंत में महत्वपूर्ण है!) app/assets/stylesheets
में। यह (और फिर सास से) ERB द्वारा प्रक्रिया की जाएगी, और जैसे जैसे
.some_container {
<% favorite_tags do |tag, color| %>
.tag.<%= tag %=> {
background-color: #<%= color %>;
}
<% end %>
}
सामान शामिल कर सकते हैं आप इसे किसी भी स्टाइलशीट की तरह शामिल कर सकते हैं।
यह कितना गतिशील होना चाहिए?
ध्यान दें कि इसे केवल एक बार संसाधित किया जाएगा, हालांकि, यदि मान बदलते हैं, तो स्टाइलशीट नहीं होगा।
मुझे नहीं लगता कि यह अभी तक पूरी तरह से गतिशील होने का एक सुपर कारगर तरीका है, लेकिन सभी अनुरोधों के लिए सीएसएस उत्पन्न करना अभी भी संभव है। इसे ध्यान में रखते चेतावनी के साथ, यहां रेल 3.1 में उस के लिए एक सहायक है:
पहले, app/helpers/application_helper.rb
में ऊपर सहायक कॉपी:
def style_tag(stylesheet)
asset = YourApplication::Application.assets[stylesheet]
clone = asset.class.new(asset.environment, asset.logical_path, asset.pathname, {})
content_tag("STYLE", clone.body.html_safe, type:"text/css")
end
इसका इस्तेमाल करने के लिए है।
तब आप अपने पेज में शामिल कर सकते इस प्रकार है:
<% content_for :head do %>
<%= style_tag "dynamic.css" %>
<% end %>
The rest of your page.
सुनिश्चित करें कि आपके लेआउट सामग्री :head
उपयोग करता है।
...
<HEAD>
....
<%= yield :head %>
</HEAD>
...
मैं इस this post करने के लिए धन्यवाद पता चला: उदाहरण के लिए, अपने layout/application.html.erb
की तरह लग सकता है।
ध्यान दें कि यदि आपके पास अपनी कम फ़ाइल में कोई डेटाबेस निर्भर तर्क है, तो यह हेरोोकू पर तैनात नहीं होगा। – Trip