2011-03-29 7 views
2

J'ai une application Rails où j'utilise des feuilles de style personnalisées qui n'ont aucun effet sur les balises <form> générées par l'assistant Rails form_tag. Quelqu'un peut-il me diriger vers un code ou un exemple qui montre comment ajouter des styles CSS à un form_tag?Ajout de styles CSS à un form_tag dans Rails 3

Répondre

5
<% form_tag {:controller => 'my_controller', :action => 'my_action'}, :id => 'my_id' do %> 

dans le fichier .css

#my_id { 
/* your style */ 
} 
+2

ou utilisez: class => 'my_class' sur tous les formulaires –

-3

façons peu que vous pouvez faire:

form { 
    color: red; 
} 

Cette saisira toutes les formes et leur style.

#id { 
    color: red; 
} 

Ceci récupèrera les formulaires correspondant à l'identifiant et les stylisera.

.class { 
    color: red; 
} 

Ceci va récupérer les formes qui correspondent à la classe et les styliser.

+0

Il demande comment ajouter une classe ou un id à form_for, pas comment le styliser en css. – methyl

0

Avec l'assistant form_for, le premier argument que vous transmettez est utilisé exclusivement par l'assistant url_for pour déterminer à quelle URL soumettre le formulaire. Les arguments nommés style hachuré sont traités comme un seul argument (un hachage) par Ruby, donc si vous passez un ensemble d'options comme premier argument (par exemple form_tag(controller: 'my_controller', action: 'show')), toutes les options supplémentaires que vous incluez (comme :method ou :class) seront traitées comme options à url_for au lieu de form_for, ce qui n'est pas ce que vous voulez. Pour corriger cela, vous pouvez explicitement passer un hachage comme premier argument à form_tag, et mettre vos autres options (comme l'attribut class, qui est probablement ce que vous voulez utiliser pour le style) en dehors de ce hachage , comme ceci:

<% form_tag {controller: 'my_controller', action: 'show'}, class: 'main-form' do %> 
    <!-- Form content here --> 
<% end %> 

Après cela, vous pouvez utiliser le style CSS pour votre formulaire comme vous le feriez avec tout autre élément:

.main-form { 
    // Style rules here 
} 

pour plus d'informations sur les options form_for accepte, voir la documentation pour form_for a sd url_for.