2010-03-08 4 views
12

Ich entwickle gerade in Schienen und ich frage mich, ob es irgendwelche einfachen Möglichkeiten gibt, um den Button zu steuern.Rails - Hinzufügen von Stil/Bild zu button_to

Können Sie hinzufügen Styling der

<%= submit_tag 'Log in' %> 

oder

<%= button_to "Show Me", {:controller => 'personal', :action => "add" } %> 

Es wäre schön, die Farbe zu ändern .... Aber Brownie Punkt, wenn jemand kann mir sagen, wie man es machen ein image

Antwort

17

Da Sie ein Bild verwenden, gibt es keinen Grund, button_to anstelle von link_to zu verwenden, "Button Look" geht für den Benutzer verloren. Sie können wie so ein Bild mit einem Link erstellen:

<%= link_to image_tag("rails.png"), {:controller => 'foo', :action => "bar" } %> 

Wenn aus irgendeinem Grund, Sie Notwendigkeit button_to zu verwenden, können Sie es eine CSS-Klasse geben und einige Stile über die Anwendung:

<%= button_to "Show Me", {:controller => 'personal', :action => "add" }, {:class => "buttonTo" } %> 
+0

Ist das, weil jeder Tag akzeptiert einen 'html_options' Hash als letzten Parameter? Das steckt aus irgendeinem Grund in meinem Kopf fest. – Tass

+0

Das stimmt! Der letzte übergebene Hash wird im Wesentlichen direkt in den resultierenden DOM-Knoten in Eigenschaften konvertiert. Hier können Sie Klassen, benutzerdefinierte IDs oder Inline-Stile angeben. Sie können auch Datenattribute hinzufügen, die von Ihrem JS gelesen werden können! –

6

Zusätzlich zu Mike's sehr feinen Zeiger auf die Verwendung einer vordefinierten :class, können Sie auch gehen Sie für :style und definieren Sie die CSS-Inline. Hilft sehr viel, wenn Sie Ihren Stil definieren on the fly wollen:

<%= button_to "Show Me", {:controller => 'personal', :action => "add" }, {:style => "background: #{obj.colourname}" } %>

(. Mit obj wobei einige Modell-Instanz, die eine HTML-Farbwert am colourname Attribut speichert)