मैं रेल अनुप्रयोग में कुछ बाहरी सीएसएस ढांचे को लागू करने के लिए एक सामान्य तरीका ढूंढ रहा हूं। ये ढांचे आमतौर पर कक्षा के नामों का एक सेट परिभाषित करते हैं जिनका उपयोग कुछ HTML तत्वों के लिए किया जाना चाहिए।रेल के फॉर्म बिल्डर हेल्पर विधियों के लिए सेटअप डिफ़ॉल्ट सीएसएस क्लास
jQuery UI पर विचार करें। एक सुसंगत रूप शैली हासिल करने के लिए आपको कुछ इस तरह होगा:
# in a view
<% form_for @foo do |f| %>
...
<%= f.text_field :bar, :class => ['ui-widget', 'ui-widget-content', 'ui-widget-container', 'ui-corner-all'] %>
or
<%= f.text_field :bar, :class => 'ui-widget ui-widget-content ui-widget-container ui-corner-all' %>
<% end %>
प्रत्येक इनपुट क्षेत्र के लिए ऐसा करने से बिल्कुल भी सूखी नहीं है।
भी
# in application_helper.rb
def jquery_ui_classes
'ui-widget ui-widget-content ui-widget-container ui-corner-all'
end
# in a view
<%= f.text_field :bar, :class => jquery_ui_classes %>
या
# in application_helper.rb
def jquery_text_field(form_builder, method, opts = {})
ui = ['ui-widget', 'ui-widget-content', 'ui-widget-container', 'ui-corner-all']
klass = [opts.delete(:class), ui].flatten.compact
form_builder.text_field method opts.merge(:class => klass)
end
# in a view
<%= jquery_text_field f, :bar %>
दिखता है न सही (या अधिक सूखी), जब से तुम अब भी उत्पन्न प्रपत्र दृश्य स्पर्श करने के लिए होगा ...
की तरह एक सहायक विधिवैकल्पिक तरीके अब InstanceTag
कक्षा या form_for
सहायक में हैकिंग बंदर-पैचिंग हो सकती है।
क्या किसी ने इससे पहले किया है?
वैसे: मैं jQuery का उपयोग कर, वर्ग गुण लागू करने के लिए (सामान्य रूप में Javascript या) से बच जाएंगे जे एस के बाद से अक्षम हो सकता है या अवरुद्ध या यहाँ तक कि देरी से दिया और एक अस्थिर कारण ...
चीयर्स,
डोमिनिक
कम से कम, फ्रेमवर्क-विशिष्ट कक्षाओं को जोड़ने का एक और सामान्य तरीका बनाने के लिए यह एक अच्छा बिंदु है। धन्यवाद! – DMKE