2011-06-29 15 views
6

मैं रेल अनुप्रयोग में कुछ बाहरी सीएसएस ढांचे को लागू करने के लिए एक सामान्य तरीका ढूंढ रहा हूं। ये ढांचे आमतौर पर कक्षा के नामों का एक सेट परिभाषित करते हैं जिनका उपयोग कुछ 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 या) से बच जाएंगे जे एस के बाद से अक्षम हो सकता है या अवरुद्ध या यहाँ तक कि देरी से दिया और एक अस्थिर कारण ...

चीयर्स,
डोमिनिक

उत्तर

0

https://github.com/phallstrom/form_helper_css

आप कक्षाएं आप चाहते हैं निर्दिष्ट कर सकते हैं नहीं, लेकिन यह सब जानकारी के लिए उचित वर्ग के नाम जोड़ देगा आप आसानी से उन्हें लक्षित करने के लिए (सभी ब्राउज़रों में) की अनुमति के लिए।

+0

कम से कम, फ्रेमवर्क-विशिष्ट कक्षाओं को जोड़ने का एक और सामान्य तरीका बनाने के लिए यह एक अच्छा बिंदु है। धन्यवाद! – DMKE