2012-02-15 12 views
9

estoy tratando de aplicar una clase a la forma generada por button_to en Rails 3.¿Cuál es la sintaxis correcta de button_to para agregar una clase al formulario generado?

La opción :class establece la clase para el botón de enviar por lo que el docs nos dicen utilizar :form_class para aplicar una clase a la forma.

E.g.

<%= button_to 'x', user_contact_path(@user, contact), :method => :delete, :form_class => "delete" %> 

Esto simplemente agrega el atributo form_class="delete" al elemento de botón. He intentado varias combinaciones usando :html_options y así sucesivamente.

¿Alguien sabe cómo hacer esto?

Respuesta

15

Ese método funciona perfectamente bien para mí. Soy capaz de hacer:

<%= button_to "Hello", root_url, :method => :get, :form_class => "my_class" %> 

lo anterior genera los siguientes:

<form action="http://localhost:3000/" class="my_class" method="get"> 
    <div><input type="submit" value="Hello"></div> 
</form> 

Sin embargo, esto es en Rails 3.1 como el enlace en sus puntos de interrogación y la misma no funcionaría en Rails 3.0 .x desde el form class is hard coded.

De url_helper código:

("<form method=\"#{form_method}\" action=\"#{html_escape(url)}\" 
    #{"data-remote=\"true\"" if remote} class=\"button_to\"><div>" + 
    method_tag + tag("input", html_options) + request_token_tag + 
    "</div></form>" 
).html_safe 
+1

Gracias Syed, de acuerdo, está codificado como estoy usando 3.0.7, creo. – digitalWestie

+2

En realidad no sabía esto hoy. ¡Gracias por la respuesta! –

0

intento con

<%= button_to 'x', user_contact_path(@user, contact), {:method => :delete, :form_class => "delete"} %> 

Esto obliga :form_class => "delete" a formar parte del hash options en lugar de la html_options hash.

+0

Hmn, esta sintaxis no funciona para mí. Debe ser algo relacionado con mi versión de rieles. – digitalWestie

Cuestiones relacionadas