2011-06-29 15 views
6

Rails uygulamasında bazı harici CSS çerçevelerini uygulamak için genel bir yöntem arıyorum. Bu çerçeveler, genellikle belirli HTML öğeleri için kullanılması gereken bir dizi sınıf adı tanımlar.Rails form oluşturucu yardımcı yöntemleri için varsayılan CSS sınıfı

jQuery UI öğesini dikkate alın. Tutarlı bir form tarzı başarmak için, böyle bir şey İster kısa ister: her giriş alanı için bu Doing

# 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 %> 

hiç KURU değildir.

# 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 %> 

veya

# 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 %> 

hala oluşturulan form görünümü dokunmak zorunda olacağından ..., sağ (veya daha fazla KURU) bak vermez

gibi

bile, yardımcı bir yöntem

Şimdi alternatif yollar InstanceTag sınıfını ya da form_for yardımcısına hacklemeyi maymun haline getirebilir.

Daha önce bunu yapan oldu mu? Bu arada

: JS devre dışı veya engellenen hatta gecikme ile teslim edilir ve bir titremeyi neden olabilir beri, sınıf özelliklerini uygulamak için (veya genel Javascript) jQuery kullanarak önleyeceğini ...

Alkış,
Dominik

cevap

0

https://github.com/phallstrom/form_helper_css

istediğiniz sınıfları belirleyemezsiniz ama kolayca (tüm tarayıcılarda) onları hedeflemesine izin tüm girişlere makul sınıf isimleri katacak.

+0

En azından, çerçeveye özgü sınıflar eklemenin daha genel bir yolunu oluşturmaya başlamak harika bir nokta. Teşekkür ederim! – DMKE

İlgili konular